若干ネタ入っていますが。
オブジェクト指向における「メッセージ」が理解できません。
サイトを読んでいる限り、
C++
1Person* taro = new Person( "太郎" ); 2Vegetable* veg = new veg(); 3taro->eat( veg ); // <- これ
みたいな説明しかないです。(私の探し方が悪いのか?)
でもこれって単に関数を呼び出しているだけでは?
C++の入門サイト(どこだったか忘れた...) では「オブジェクトがメソッドを持っているのではなく、関数ポインタ的なものを保持して呼び出しているだけである」のような説明でした。
そこから考えるとメッセージじゃないでしょ。って思ってしまいます。
それとも Test1クラスがあり、Test2クラスのオブジェクトを保持していて、Test1のオブジェクトを使う方はあたかもTest2にまで影響を与えているように見せることでしょうか?
C++
1class Test2{ 2 public: 3 Test2(int num) : num_(num){} 4 ~Test2() = default; 5 6 int num( void ) const{ return num_; } 7 bool update( int code ){ 8 // 何らかの通達があり 9 } 10 private: 11 int num_; 12}; 13 14 15class Test1{ 16 public: 17 Test1( Test2* t ) : test_(t){} 18 ~Test1() = default; 19 20 bool update( void ){ 21 // ここで独自の処理をして 22 test_->update( 100 ); // 通達 23 return true; 24 } 25 private: 26 Test2* test_; 27}; 28 29// main関数のような呼び出し元にて 30Test2* t2 = new Test2(1); 31Test1* t1 = new Test1( t2 ); 32t1->update(); // t1を操作すると 33cout << t2->num() << endl; // t2のデータも変わっている 34delete ...
のように内部に包括しておいて、呼び出し元( main関数等 ) からすれば複数のオブジェクト間でデータ通信があるように見せる...
ってことでしょうか?
ちょっとわかりにくいです。
言語は問いませんが、基本的に使っている言語はC++なのでC++で書いてます。
質問:どのように「メッセージ」を捉えればいいのでしょうか?
[ちょこっと補足]
前者のほうらしいですが、少なくともC++ではメッセージっていうかコマンド(command)とかオーダー(order)じゃないかなと思ったりして...
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/08 01:59