我在互联网上读到,即使在以下类中将其定义为纯虚函数,也很少会定义该函数。
class abc
{
public:
virtual void func() = 0;
}
void abc::func()
{
cout << "in abc::func()";
}
我不明白这个用法。在链接http://www.gotw.ca/gotw/031.htm上,提到我们可以将其用作纯虚拟析构函数。但是我还不清楚。谁能让我知道有什么用。
析构函数即使是纯虚拟的也需要实现,因为析构函数会自动且非虚拟地(在每个基类链中)被调用。
因此,如果您有一个纯虚拟析构函数,则最好也定义它。
否则,您将无法销毁该类或派生自该类的类的任何对象:将在销毁中尝试使用析构函数调用,并且链接器会抱怨找不到其定义。
由于语法上的一个古怪的问题,因此无法在类定义中内联提供该定义,而必须单独提供。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句