c++ - 来自构造函数和析构函数的纯虚拟调用

标签 c++ constructor destructor pure-virtual

C++ 标准规定禁止从构造函数或析构函数调用纯虚函数。这是什么原因?标准为什么要设置这样的限制?

最佳答案

在运行类析构函数时,所有子类析构函数已经运行。调用子类定义的虚方法是无效的,其析构函数已经运行。

在构造函数中调用虚方法也存在类似的限制。您不能为尚未运行构造函数的子类调用虚方法。

关于c++ - 来自构造函数和析构函数的纯虚拟调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651895/

相关文章:

java - 如何从数组中获取值以在另一个类中使用?

c++ - 内存满时文件读取失败

c++ - 无符号和有符号整数

c++ - c++ blocks { } 有负面影响吗

javascript - 根据对象迭代动态获取数据库值

delphi - delphi中的TCollectionItem和析构函数方法

c++ - 等待另一个 child 的 child

c++ - 如何使用调用纯虚拟成员的 std::function 初始化抽象类中的成员?

c++ - 如何安全地删除分配给新的结构?

c++ - WA_DeleteOnClose 删除所有成员?