#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* を返すのがいいのでしょうか?