• ベストアンサー

クラスのアドレスを引数として渡したい

関数の引数として,クラスのアドレスを渡すにはどうしたら良いですか. void func(MyClass mc) { mc = ~ } としたとき,これは参照渡しとなっているのですか? それとも値渡しとなっているのですか? もし値渡しとなっているのでしたら,クラスの場合 どのようにすれば参照渡しにできるのでしょうか. よろしくお願いします.

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

  • ベストアンサー
  • ken2r
  • ベストアンサー率25% (1/4)
回答No.1

以下3通りです。 ・値渡し void func(MyClass mc) ・参照渡し void func(MyClass &mc) ・アドレス渡し void func(MyClass *mc)

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

C++では、クラスはオブジェクトではありませんのでアドレスはありません。 クラス型のオブジェクトのアドレスであれば、 void func(MyClass* mc) {  *mc = ~ } とすることができます。 なお、MyClass&とした場合が参照渡しですが、これはアドレスを渡しているわけではありません(処理系&文脈によっては、コンパイル結果がアドレス渡しになることはありますが、それはまた別の話です)。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

C++ では, いかなる場合においても「仮引数に & があれば参照渡し」だし「なければ値渡し」です. これは組み込み型でもクラス型でも同じであり, 「クラスの場合」に特別な何かがあるわけではありません.

関連するQ&A