C++标准规定禁止从构造函数或析构函数调用纯虚函数。这是什么原因呢?为什么标准要有这样的限制呢?
发布于 2011-12-28 12:39:33
这和你不能住在房子里的原因是一样的,当你在浇筑地基或拆毁它的时候。在构造函数完成之前,对象只被部分构造。一旦析构函数启动,对象就会被部分销毁。纯虚函数只能在处于正常状态的对象上调用,否则确定调用哪个函数实现所需的结构可能不存在。
发布于 2011-12-28 12:39:38
该函数只是一个要在子类中实现的原型,它实际上并不存在于类中...所以它既不能在构造函数中调用,也不能在析构函数中调用。
该函数没有实现,因此,简单地说,没有代码可供调用:)
调用构造函数/析构函数时,实现纯虚函数的子类不存在。
https://stackoverflow.com/questions/8651895
复制相似问题