ヘッダと.cppをコンパイルしたオブジェクトファイルを
提供するとします。
---- XXX.h ----
class XXX
{
public:
void SetValue( int value );
int GetValue( void );
prvate:
int m_Value;
}
---- XXX.cpp ----
void XXX::SetValue( int value )
{
if ( value > 0) m_Value = value;
}
int XXX::GetValue( void )
{
return m_Value;
}
m_Value をprivateにしているのは必ずメンバ関数を使ってほしいからです。
しかし、悪意をもったユーザーであれば
XXX.h の private を public に書き換えて
m_Value を直接扱うことができてしまうようです。
m_Valueの直接編集を防ぐ良い方法はないでしょうか?
(XXX.h は公開情報、XXX.cpp は非公開情報)