两个基类(接口)中有一个完全一样的纯虚函数,衍生类中只有一份实现,但可以正常编译、运行。为什么
两个基类(接口)中有一个完全一样的纯虚函数,派生类中只有一份实现,但可以正常编译、运行。为什么?
为什么ia、ib和o都可以正常调用function?总感觉看起来很变扭。
那位大牛能给我解释一下!!!
------解决方案--------------------
你不需要对它熟。凡是必须要倚靠此结构的编程行为,都不是正规编程行为。
------解决方案--------------------
这个代码非常规范。
你要真好奇心强,就去啃《深度探索C++对象模型》。啃过了,你就发现完全是浪费生命。
struct InterfaceA
{
virtual void function() = 0;
};
struct InterfaceB
{
virtual void function() = 0;
};
class Object
: public InterfaceA
, public InterfaceB
{
public:
void function() override
{
return ;
}
};
int main()
{
Object o;
InterfaceA* ia = &o;
InterfaceA* ib = &o;
ia->function();
ib->function();
o.function();
return 0;
}
为什么ia、ib和o都可以正常调用function?总感觉看起来很变扭。
那位大牛能给我解释一下!!!
------解决方案--------------------
你不需要对它熟。凡是必须要倚靠此结构的编程行为,都不是正规编程行为。
------解决方案--------------------
这个代码非常规范。
你要真好奇心强,就去啃《深度探索C++对象模型》。啃过了,你就发现完全是浪费生命。