次のコードはコンパイルされて実行されますが、私は下位レベルで正確に何が起こっているのか分かりません。参照は参照されているオブジェクトのアドレスを格納するだけではありませんか?その場合、両方のテスト関数がパラメータとしてアドレスを受け取っていますか?あるいは、C++の実装は、これらの型を別の方法で区別することができますか?あなたが関数にint&
を渡しており、それはint&
とint*
ようint*
次の場合、関数のオーバーロードはどのように機能しますか?
1
A
答えて
7
に変換することができないためだけchar test(int&i)
と一致コーディング
int main() {
int i = 1;
cout << test(i) << endl;
}
char test(int &i) {
return 'a';
}
char test(int *i) {
return 'b';
}
1
は異なるタイプであり、i
はint&
として扱うことができるが、 int*
ではなく、ここでは過負荷解決は絶対に明白です。
この時点では、参照はちょっと隠された種類のポインタにすぎません。言語の観点から見ると、それらは異なるタイプです。
2
C++での参照は、ポインタよりもエイリアスに似ています。参照はそれ自身では別個の変数ではありませんが、既存の変数の新しい「名前」です。あなたの例では、関数に整数を渡すので、最初のテストが呼び出されます。ポインタは、別の変数のアドレスを保持する別の変数です。したがって、2番目の関数を呼び出すには、ポインタを使ってtestを呼び出す必要があります。そうですね... test(&i);
&は、&で宣言された変数がint &i
のような参照を宣言している間に、演算子を混乱させるようなものは変数のアドレスを取得します。
関連する問題
- 1. 次のような場合、バリデーションテンプレートはどのように機能しますか?
- 2. 次の関数定義はどのように機能しますか?
- 3. jQuery pushStack関数はどのように機能しますか?
- 4. getChar関数はどのように機能しますか?
- 5. geom_map "map_id"関数はどのように機能しますか?
- 6. .sync()関数はどのように機能しますか?
- 7. SelectPercentileスコア関数はどのように機能しますか?
- 8. 関数symexistはどのように機能しますか?
- 9. accept()関数はどのように機能しますか?
- 10. pickleモジュールの場合、__reduce__関数は正確にどのように機能しますか?
- 11. 次のPythonコードスニペットはどのように機能しますか?
- 12. 次のプログラムはどのように機能しますか?
- 13. Listの場合、Scalaのequalsメソッドはどのように機能しますか?
- 14. AsImplementedInterfacesの場合、Resolveはどのように機能しますか?
- 15. 関数が値を返さない場合、Jasmineはどのように機能しますか?
- 16. 演算子[]のオーバーロードはどのように機能しますか?
- 17. PHP関数の依存関係はどのように機能しますか?
- 18. この関数/変数はどのように機能しますか?
- 19. 変数はラムダ関数の中でどのように機能しますか?
- 20. このbash補完機能はどのように機能しますか? (cloudfoundry cliの場合)
- 21. テンプレートの戻り型関数はC++でどのように機能しますか?次の例では
- 22. この場合、演算子のオーバーロードはどのように機能しますか?私は、この演算子のオーバーロードは、このコードでは、ここでどのように機能するかを取得
- 23. この場合、どのようにメタクラス(__call__)が機能しますか?
- 24. Pythonのselectモジュールのselect()関数はどのように機能しますか?
- 25. io.Pipe Write()およびRead()関数はどのように機能しますか?
- 26. スレッド結合はどのように機能しますか?
- 27. Spring統合:RendezvousChannelはどのように機能しますか?
- 28. dropbox.comの複数のファイルアップロード機能はどのように機能しますか?
- 29. OpenCVライブラリのFindContours関数はどのように機能しますか?
- 30. numpy平均関数のパラメータ 'a'はどのように機能しますか?
ああこれは私には明らかなことです –