- ベストアンサー
-> と . の違いについて
クラスを宣言し、メンバ関数を呼ぶ際に使われるのは分かりますが それぞれの違いについてわかりません。 どのように違い、利用時はどちらを使用するかを教えて頂けませんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そのクラスなり構造体がアドレスで渡されているなら->を使い 実態そのものが渡されているなら . を使います 大雑把な例 struct Test { int a; int b; int c; }; void Samplecode(void) { Test test1; Test *test2; test2 = &test1; test1.a = 5; //5代入 test2->a = 5; //上と同じ } コードは全角入ってる場合ありコンパイルテストなどはしてません
その他の回答 (1)
- graycat000
- ベストアンサー率51% (53/102)
回答No.2
呼び出したいクラスの変数がポインタ変数か実インスタンスかの違いです. class A; A a; A *pa; pa = &a; みたいなコードがあった場合,メソッドを呼び出すときは, a.method(); pa->method(); としなければなりません.上記の2行の実行結果の差はありませんが,プログラムの構造によってどちらが適当か選んで使用します.
お礼
koi1234様、ご返答ありがとうございます。 なるほど!分かりやすい例です! ありがとうございました!