在 C++ 中,方法默认是非虚拟的。可以通过使用 virtual 关键字将其设为虚拟函数。示例代码#include using namespace std; class B { public: void s() //默认非虚拟。在函数前使用 virtual 以打印“In Derived” { cout
在 C++ 程序中允许使用纯虚析构函数不会产生不良影响。必须为纯虚析构函数提供函数体,因为派生类的析构函数在基类析构函数之前被调用,所以如果我们不提供函数体,它将找不到在对象销毁期间要调用的任何内容,并且会发生错误。通过为纯虚析构函数及其定义,我们可以轻松地创建一个抽象类。示例代码 实时演示#include using namespace std; class B { public: virtual ~B()=0; // 纯虚析构函数 }; B::~B() { cout
这只是一个语法,仅此而已,表示“该函数是纯虚函数”。纯虚函数是 C++ 中的一个虚拟函数,我们不需要为其编写任何函数定义,只需要声明它即可。它通过在声明中赋值 0 来声明。以下是 C++ 程序中纯虚函数的示例示例代码 实时演示#include using namespace std; class B { public: virtual void s() = 0; // 纯虚函数 }; class D:public B { public: void s() { cout s(); }输出派生类中的虚函数
当派生类具有多个基类的副本时,使用虚拟基类。示例代码#include using namespace std; class B { public: int b; }; class D1 : public B { public: int d1; }; class D2 : public B { public: int d2; }; class D3 : public D1, public D2 { public: int d3; }; int main() { D3 obj; obj.b = 40; //语句 1,将发生错误 obj.b = 30; //语句 2,将发生错误 obj.d1 = 60; obj.d2 = 70; obj.d3 = 80; cout