質問 |
||
| QNo.3995924 | 参照型で受け取った引数をポインター型に渡す方法 | |
|---|---|---|
| 質問者:tobasu |
参照型で受け取った引数をポインター型に渡す場合は、 どのようにすればよいのでしょうか? 私は参照型の理解がすっぽりぬけています。 参照型はC++で導入された方法で、何がメリットで何がデメリットでしょうか? void pointer_test(AA *b) { ... } void test(AA &a) { pointer_test( ??? ); } |
|
困り度:
|
||
| 質問投稿日時: 08/05/04 01:09 |
||
回答良回答10pt |
|
| ANo.2 | 参照型を引数にすることのデメリットはその関数呼び出しを見ただけでは、参照渡しをしているのか値渡しをしているのかわからないことではないでしょうか? 例えば、test(a); という関数呼び出しを見たときに、test() のプロトタイプが void test(AA&) なのか、void test(AA) なのかわかりませんが、たいてい後者だと思う傾向にあります。 参照渡しされた変数の内容がその副作用で変更されるような場合には、参照渡しでなくポインタで渡した方がよいように思われます。 例えば、test(&a) という関数呼び出しを見れば、プログラマはその関数プロトタイプを確認して、const がつかない void test(AA*) のような宣言かどうかを気にするのではないでしょうか? |
|---|---|
| 回答者:koko_u_ | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/04 05:28 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答20pt |
|
| ANo.1 | pointer_test( &a ); ですね。a は AA型なので、AAへのポインタを渡すに&を付けるのは普通の変数と同じです。 >何がメリットで何がデメリットでしょうか? メリットは見やすいこと。デメリットは特にないと思います。 しいて言うと、ポインタで受けるのと参照で受けるのを無原則に使うと混乱しやすいと言うことでしょうか(参照自体のデメリットではないですけど)。 |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/05/04 01:50 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |