C++ C++;虚拟析构函数

C++ C++;虚拟析构函数,c++,virtual-destructor,C++,Virtual Destructor,创建原型类时我将析构函数的布局如下: virtual ~MyClass(); 在库中完成类时,我注意到我不能添加“virtual”。这是正常的,是虚拟的,还是我做错了什么 比如,;当我尝试执行此操作时,会出现编译器错误: virtual MyClass::~MyClass() { } 相反,这样做是可行的: MyClass::~MyClass() { } 我的问题是,因为我不必在析构函数的最终代码编写中包含virtual,析构函数是否仍然作为虚拟析构函数(因为它作为原型是虚拟的)?关键字v

创建原型类时我将析构函数的布局如下:

virtual ~MyClass();
在库中完成类时,我注意到我不能添加“virtual”。这是正常的,是虚拟的,还是我做错了什么

比如,;当我尝试执行此操作时,会出现编译器错误:

virtual MyClass::~MyClass() { }
相反,这样做是可行的:

MyClass::~MyClass() { }

我的问题是,因为我不必在析构函数的最终代码编写中包含
virtual
,析构函数是否仍然作为虚拟析构函数(因为它作为原型是虚拟的)?

关键字
virtual
仅用作类定义内的成员函数声明的一部分


如果成员函数是在类定义之外定义的,则不会将
virtual
关键字放在那里。

virtual关键字只能用于类声明中的函数声明(通常在头文件中),而不能用于源文件中的定义。这适用于所有函数,而不仅仅是析构函数。

很好地回答了我的问题:)@DeadMG您必须等待15分钟才能标记答案。@m00st:Oh。“我从来没有一个问题很快回答。YAY对于C++问题号0x8000:”弗莱德:我猜人们现在问C++的问题比以前多了一些?)