Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
関数のオーバーライドを実装するために参照を使用できますか? 派生クラス オブジェクトを指す基本クラス参照を取得して、レイト バインディングの機能を取得することはできますか?
はい。その理由は、C++ では、派生クラス オブジェクトに、オブジェクトの実際の型の詳細を示すレコードへの隠しポインターが含まれているためです。参照が問題のオブジェクトをバインドしている場合でも、ポインターとレコードの両方が残ります。
これは、@Simon が観察するように、基本クラスで関数 virtual を宣言したことを前提としています。(それ以外の場合、必要な隠しポインターは存在しません。)