• ベストアンサー

-> と . の違いについて

クラスを宣言し、メンバ関数を呼ぶ際に使われるのは分かりますが それぞれの違いについてわかりません。 どのように違い、利用時はどちらを使用するかを教えて頂けませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

そのクラスなり構造体がアドレスで渡されているなら->を使い 実態そのものが渡されているなら . を使います 大雑把な例 struct Test { int a; int b; int c; }; void Samplecode(void) { Test  test1; Test  *test2; test2 = &test1; test1.a = 5;   //5代入 test2->a = 5; //上と同じ } コードは全角入ってる場合ありコンパイルテストなどはしてません

7u7
質問者

お礼

koi1234様、ご返答ありがとうございます。 なるほど!分かりやすい例です! ありがとうございました!

その他の回答 (1)

回答No.2

呼び出したいクラスの変数がポインタ変数か実インスタンスかの違いです. class A; A a; A *pa; pa = &a; みたいなコードがあった場合,メソッドを呼び出すときは, a.method(); pa->method(); としなければなりません.上記の2行の実行結果の差はありませんが,プログラムの構造によってどちらが適当か選んで使用します.

関連するQ&A