我有三个班级
class A {
// pure virtual funcs and member vars
virtual ~A();
}
class B : public A {
// some more pure virtual funcs
virtual ~B();
}
class C : public B {
// concrete implementations
~C() {}
}
目前,这并没有使用对`typeinfo'的未定义引用进行编译。错误(~B()没有定义,很容易修复)但是我想知道是否只定义虚拟~B {}'是正确的事情,或者~C应该是虚拟的还是定义的,所以调用~B被调度到~C?
答案 0 :(得分:0)
假设这个问题是关于一个纯粹的虚拟析构函数(代码不是真的,所以很难说,但是你正在谈论一个缺少的析构函数定义,以及关于纯虚函数): / p>
必须定义一个可以调用的纯虚析构函数。
您无法在类定义中定义它。
没有明确的理由说明为什么必须在类定义的外部定义,除了Bjarne Stroustrup(语言创建者)的旧评论,他认为Analysis Services DDL Task
表示“没有身体”。
实施例
= 0