3

関数のオーバーライドを実装するために参照を使用できますか? 派生クラス オブジェクトを指す基本クラス参照を取得して、レイト バインディングの機能を取得することはできますか?

4

2 に答える 2

1

はい。その理由は、C++ では、派生クラス オブジェクトに、オブジェクトの実際の型の詳細を示すレコードへの隠しポインターが含まれているためです。参照が問題のオブジェクトをバインドしている場合でも、ポインターとレコードの両方が残ります。

これは、@Simon が観察するように、基本クラスで関数 virtual を宣言したことを前提としています。(それ以外の場合、必要な隠しポインターは存在しません。)

于 2013-07-11T15:19:14.770 に答える