アプリ版:「スタンプのみでお礼する」機能のリリースについて

関数の引数として,クラスのアドレスを渡すにはどうしたら良いですか.

void func(MyClass mc) {
mc = ~
}
としたとき,これは参照渡しとなっているのですか?
それとも値渡しとなっているのですか?

もし値渡しとなっているのでしたら,クラスの場合
どのようにすれば参照渡しにできるのでしょうか.
よろしくお願いします.

A 回答 (3件)

C++では、クラスはオブジェクトではありませんのでアドレスはありません。


クラス型のオブジェクトのアドレスであれば、

void func(MyClass* mc) {
 *mc = ~
}

とすることができます。
なお、MyClass&とした場合が参照渡しですが、これはアドレスを渡しているわけではありません(処理系&文脈によっては、コンパイル結果がアドレス渡しになることはありますが、それはまた別の話です)。
    • good
    • 1

C++ では, いかなる場合においても「仮引数に & があれば参照渡し」だし「なければ値渡し」です. これは組み込み型でもクラス型

でも同じであり, 「クラスの場合」に特別な何かがあるわけではありません.
    • good
    • 0

以下3通りです。



・値渡し
void func(MyClass mc)

・参照渡し
void func(MyClass &mc)

・アドレス渡し
void func(MyClass *mc)
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A