C++相談室 part85
■ このスレッドは過去ログ倉庫に格納されています
0106デフォルトの名無しさん
2010/10/12(火) 19:47:56class Test {
public:
Test() { c = 'T'; i = 10; };
char getChar() { return c; };
int getInt() { return i; };
private:
int i;
char c;
};
int main()
{
Test t;
printf("t.i = %d, t.c = %c\n", t.getInt(), t.getChar());
printf("t = %d\n", t);
return 0;
}
としたとき、1つ目のprintf()関数で値を取得出来るのは分かるのですが、
2つ目のprintf()関数でも、最初に定義されたメンバ変数の値(つまりt.getInt()と同じ値)が
取得出来るようです。
値を書き換えることは出来ないとは言え、実質privateメンバ変数の値に
publicメンバ関数を通さずにアクセスできていることになりますが、
これは言語仕様でしょうか?
■ このスレッドは過去ログ倉庫に格納されています