gpt4 book ai didi

c++ - 使用在 C++ 类外定义的纯虚函数?

转载 作者:行者123 更新时间:2023-11-30 00:50:13 25 4
gpt4 key购买 nike

我在互联网上读到我们很少定义该函数,即使它在类中被定义为纯虚函数,如下所示。

class abc
{
public:
virtual void func() = 0;
}

void abc::func()
{
cout << "in abc::func()";
}

我不明白这个的用途。在链接上http://www.gotw.ca/gotw/031.htm ,有人提到我们可以将其用作纯虚拟析构函数。但是我还没有弄清楚。谁能告诉我有什么用。

最佳答案

析构函数需要一个实现,即使它是纯虚拟的,因为析构函数是自动和非虚拟调用的(在每个基类链上)。

因此,如果您有一个纯虚拟析构函数,您最好也定义它。

否则,您将无法销毁该类或从该类派生的类的任何对象:将在销毁中尝试调用析构函数,链接器将提示找不到定义。

由于从未修复的语法怪癖,无法在类定义中内联提供定义,而必须单独提供。

关于c++ - 使用在 C++ 类外定义的纯虚函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com