nit*_*ian 17 c++ constructor destructor pure-virtual
C++标准规定禁止从构造函数或析构函数中调用纯虚函数.这是什么原因?标准为什么要设置这样的限制?
Gre*_*ill 20
在一个类的析构函数运行的地步,所有子类析构函数都已经被运行.调用由其运行析构函数的子类定义的虚方法是无效的.
在构造函数中调用虚方法时存在类似的限制.您不能为其构造函数尚未运行的子类调用虚方法.
这就是你倾倒基础或撕掉它时你不能住在房子里的原因.在构造函数完成之前,该对象仅部分构造.一旦析构函数启动,对象就会被部分破坏.纯虚函数只能在处于正常状态的对象上调用,否则需要确定调用哪个函数实现的结构可能不存在.