std::cout << "del class b";};
pa = new b;嗨,我是C+查看上面的代码示例,class b没有虚拟析构函数,但是当程序执行时,输出是del class b,然后是del class a。我想知道为什么会这样,因为我还没有在class b中创建虚拟析构函数。这是否意味着通过将基析构函数声明为virtual,派生类的“虚拟性”是隐含的?谢谢。
我需要在我的一个类中创建一个虚拟函数。诚然,我做这件事的经验非常少,所以我不确定我在定义中做错了什么,但是有些东西导致了错误。should be preceded by ';'C2208: 'int': no members defined by using this type
我对此感到非常困惑,因为类中没有任何地方(没有其他函数
我正在学习虚函数,我对下面程序的结果感到非常困惑我希望a1.virFun(b1)和b1.virFun(b1)都应该返回"hello from B",但程序返回"hello from A“。你能解释一下为什么b1.sayHello()没有被调用吗,即使我将b1作为参数传递,而b1.sayHello()是虚函数。
);i++)A r = B();现在你会注意到,当我将A初始化为B或C时,它不会触发B或C中的函数我理解这个概念,因为对象是A,所以它使用A的taco函数,但我只是想知道是否有什么技巧可以获得其他函数。我的项目相当复杂,我不能知道将覆盖A的所有类(由于插件覆盖了一个类)。此外,我还需要让基本虚函数有一个主体来添加默认行为。谢谢。