#include <stdio.h> #include <string.h> class A { private: char m_name[256]; public: char* SetName( char *name ); void Show(); }; char* A::SetName( char *name ) { strcpy( m_name, name ); printf( "%s にセットしました\n", m_name ); return m_name; } void A::Show() { printf( "%s\n", m_name ); } int main() { A a; printf( "%s\n", a.SetName( "hoge" ) ); char *p = a.SetName( "うらしま太郎" ); strcpy( p, "hoge" ); a.Show(); return 83; }ここで、クラスAのprivateメンバ変数へのポインタを外部変数に渡すと
簡単にprivate変数の中身が クラスA以外から簡単に壊せます
これはオブジェクト指向では推薦されないやり方で
この場合は SetName は const char* を返すのがいいのでしょうか?