【发布时间】:2014-01-30 14:04:35
【问题描述】:
我一直在使用越来越多的 C++11,并且遇到了一些我在任何地方都找不到的东西。当我们从基指针中删除派生类时,我们需要有虚析构函数;但有时父析构函数需要是“纯”的,这在 C++ 中是不可能的。那么,我的问题是 default 可以用于虚拟析构函数吗?我已经尝试过它并且它可以工作,但我不知道它是否安全,因为互联网上的任何地方都没有关于它的信息。
编辑:为了澄清问题,我说的是使用virtual ~Class() = default;
【问题讨论】:
-
这个话题不相关。
-
virtual ~Class() = 0;尚未从语言中删除。 -
Undefined symbols for architecture x86_64: "Component::~Component()", referenced from: PhysicsComponent::~PhysicsComponent() in PhysicsComponent.o- 当我使用纯虚拟时会发生这种情况 -
@Gasim 你仍然需要为它指定一个实现,因为它总是会被调用。
-
那么使用纯虚析构函数有什么意义。是否强制派生类在编译期间具有析构函数?如果是,那不是我需要的。正在使用
virtual ~Class()=default;'legal' C++?