【发布时间】:2018-02-18 13:59:59
【问题描述】:
我想我在理解动态绑定方面遇到了一些麻烦。
假设我们有 2 个类:
class a1{ //..
virtual void print() const;
};
class a2:a1{ //...
void print() const override;
};
为什么以下是正确的:
a2 item_son;
a1 &item_father = item_son;
item_father->print();
被调用的印刷品是儿子的印刷品。
【问题讨论】:
-
稍微修改一下代码使其可以编译后,cannot reproduce。
-
^ - 引用不是指针
-
你的意思是实际上调用的是
a1::print,而不是a2::print?现在是真的学习如何创建Minimal, Complete, and Verifiable Example的时候了。 -
我还没有得到静态/动态绑定的连接
-
你应该阅读
public成员和public继承
标签: c++ dynamic-binding