C++ 标准规定禁止从构造函数或析构函数调用纯虚函数。这是什么原因?标准为什么要设置这样的限制?
最佳答案
在运行类析构函数时,所有子类析构函数已经运行。调用子类定义的虚方法是无效的,其析构函数已经运行。
在构造函数中调用虚方法也存在类似的限制。您不能为尚未运行构造函数的子类调用虚方法。
关于c++ - 来自构造函数和析构函数的纯虚拟调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651895/
C++ 标准规定禁止从构造函数或析构函数调用纯虚函数。这是什么原因?标准为什么要设置这样的限制?
最佳答案
在运行类析构函数时,所有子类析构函数已经运行。调用子类定义的虚方法是无效的,其析构函数已经运行。
在构造函数中调用虚方法也存在类似的限制。您不能为尚未运行构造函数的子类调用虚方法。
关于c++ - 来自构造函数和析构函数的纯虚拟调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651895/