- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラス内で上位クラス内メンバの値を変更)
クラス内で上位メンバの値を変更
このQ&Aのポイント
- クラス内で上位クラス内メンバの値を変更する方法について教えてください。
- 具体的には、Test1Objクラス内のtest1Valueの値を2に変えたいです。
- また、コードに問題があれば指摘していただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
#include <stdio.h> class Test2Obj; class Test1Obj{ public: int test1Value; Test2Obj *test2Obj; Test1Obj( int tmp_test1Value ); void setTest1Value( int tmp_test1Value ){ test1Value = tmp_test1Value; } }; class Test2Obj{ Test1Obj *owner; public: Test2Obj( Test1Obj *it ) : owner( it ) {} void changeValue(int v){ owner->setTest1Value( v ); } }; Test1Obj::Test1Obj( int tmp_test1Value ){ setTest1Value( tmp_test1Value ); test2Obj = new Test2Obj( this ); } int main(void){ Test1Obj *test1Obj = new Test1Obj( 1 ); printf( ">>>%d\n", test1Obj->test1Value ); test1Obj->test2Obj->changeValue( 2 ); printf( ">>>%d\n", test1Obj->test1Value ); }
お礼
おお! 凄い。 ちょっと複雑なのになると、クラスを書く順番と 関数を書く順番を注意しないとこんがらがっちゃいそうですね。 C++の奥深さを垣間見ました。 ありがとうございます。