实现运行时多态的条件不同的教材上有不同的表述
例1.
(1)类之间符合类型兼容规则
(2)必须声明是虚函数
(3)必须通过成员函数或基类指针,引用调用虚函数
例2
(1)类之间符合类型兼容规则
(2)派生类必须公有继承基类,必须是虚函数
(3)必须通过基类指针,引用调用
问题是,
(1)那种表述是正确的
(2)类型兼容规则我知道,但“类之间符合类型兼容规则”在这里的具体含义是什么?
(3)“通过成员函数调用虚函数”,如果这个成员函数通过对象调用,成员函数再调用虚函数,还是运行时多态吗?肯定不是啊,因此这句话该怎么理解? |