-
1283 votesanswersviews
何时使用虚拟析构函数?
我对大多数面向对象的理论有深刻的理解,但令我困惑的一件事是虚拟析构函数 . 我认为无论什么和链中的每个对象,析构函数总是被调用 . 你什么时候打算让它们成为虚拟的?为什么? -
6 votesanswersviews
缺少的vtable通常意味着第一个非内联虚拟成员函数没有定义
我很确定这个问题是重复的,但我的代码在这里有所不同,以下是我的代码 . 它失败了“未定义的符号”错误,不确定丢失了什么 . class Parent { public : virtual int func () = 0; virtual ~Parent(); }; class Child : public Parent { public : ... -
2 votesanswersviews
错误LNK2019 - 抽象类中的虚拟析构函数[重复]
可能重复:C中的纯虚拟析构函数 我有两个类:抽象的“Game”类和派生的“TestGame”类 . TestGame中的所有函数都是单独实现的(为了使其编译) . 我只收到一个错误: TestGame.obj:错误LNK2019:未解析的外部符号“public:virtual __thiscall Game ::〜Game(void)”(?? 1Game @@ UAE @ XZ)在函数“p... -
0 votesanswersviews
C虚拟析构函数和符号引用错误
只是因为我想让虚拟方法在我的父类和子类中应用多态,我才放入虚拟析构函数 . 但是,我一直在收到错误 Child ::〜Child()Child :: Child()作为符号引用错误 . class Parent { public: Parent(); virtual ~Parent(); }; class Child { public: Child(); ... -
1283 votesanswersviews
何时使用虚拟析构函数?
我对大多数OO理论有了深刻的理解,但让我困惑的一件事是虚拟析构函数 . 我认为无论什么以及链中的每个对象,析构函数总是会被调用 . 你什么时候打算让它们成为虚拟的?为什么? -
149 votesanswersviews
为什么要在C中为抽象类声明虚拟析构函数?
我知道在C中为基类声明虚拟析构函数是一个好习惯,但是即使对于作为接口的抽象类,声明 virtual 析构函数总是很重要吗?请提供一些理由和示例原因 . -
27 votesanswersviews
默认的虚拟析构函数是否会阻止编译器生成的移动操作?
受到帖子Why does destructor disable generation of implicit move methods?的启发,我想知道默认的虚拟析构函数是否也是如此,例如: class WidgetBase // Base class of all widgets { public: virtual ~WidgetBase() = default; ... -
46 votesanswersviews
每个 class 都应该有一个虚拟的析构函数吗?
Java和C#支持使用 final 和 sealed 关键字不能用作基类的类的概念 . 然而,在C中,如果每个类都有一个虚拟的析构函数,那么就没有好的方法可以防止一个类的派生,这会使类的作者陷入两难境地? Edit: 由于C 11不再是这样,你可以指定一个类是final . 一方面给对象一个虚拟析构函数意味着它将具有 vtable ,因此 vptr 消耗4个(或64位机器上的8个)每个对象的附... -
0 votesanswersviews
在c中的析构函数概念
请仔细阅读以下代码: #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class ClassA { protected: int width, height; public: void set_values(in...