使用纯虚函数在C ++类之外定义?

女士

我在互联网上读到,即使在以下类中将其定义为纯虚函数,也很少会定义该函数。

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

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

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

干杯和hth。-阿尔夫

析构函数即使是纯虚拟的也需要实现,因为析构函数会自动且非虚拟地(在每个基类链中)被调用。

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

否则,您将无法销毁该类或派生自该类的类的任何对象:将在销毁中尝试使用析构函数调用,并且链接器会抱怨找不到其定义。

由于语法上的一个古怪的问题,因此无法在类定义中内联提供该定义,而必须单独提供。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用纯虚函数在boost python中的多个派生类

来自分类Dev

类定义之外的Python函数分配导致参数异常

来自分类Dev

从模板化类重写纯虚函数

来自分类Dev

如何将C ++类转换为托管类并在其中调用纯虚函数?

来自分类Dev

使用纯虚函数定义在C ++类之外?

来自分类Dev

C ++-在模板类之外但在标头中定义成员函数

来自分类Dev

从派生的模板类重写纯虚函数

来自分类Dev

如何在类模板之外定义类模板的构造函数模板?

来自分类Dev

如何使默认构造函数在noexcept类之外定义?

来自分类Dev

C ++:从同一类的成员函数调用纯虚函数

来自分类Dev

在Singleton DLL中未定义的纯虚函数

来自分类Dev

在任何名称空间之外定义C#类

来自分类Dev

在类定义之外的模板类成员函数主体中,何时需要模板参数?

来自分类Dev

从Python类之外的函数引用已定义的变量

来自分类Dev

从类定义之外调用React函数PropType

来自分类Dev

在模板化类之外定义非模板函数

来自分类Dev

如何在另一个文件的类之外定义类构造函数?

来自分类Dev

在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

来自分类Dev

如何删除从基类继承的纯虚函数?

来自分类Dev

从未定义基类的纯虚函数中调用它?

来自分类Dev

如何在类模板之外定义类模板的构造函数模板?

来自分类Dev

具有纯虚函数的模板类的C ++语法?

来自分类Dev

具有纯虚函数实现的类

来自分类Dev

在Singleton DLL中未定义的纯虚函数

来自分类Dev

从模板基类覆盖纯虚函数

来自分类Dev

在 C# 中的任何类之外可以定义什么?

来自分类Dev

在类声明之外定义函数体未编译

来自分类Dev

在类定义之外移动函数

来自分类Dev

在类定义和静态数据的使用之外定义私有成员函数

Related 相关文章

  1. 1

    使用纯虚函数在boost python中的多个派生类

  2. 2

    类定义之外的Python函数分配导致参数异常

  3. 3

    从模板化类重写纯虚函数

  4. 4

    如何将C ++类转换为托管类并在其中调用纯虚函数?

  5. 5

    使用纯虚函数定义在C ++类之外?

  6. 6

    C ++-在模板类之外但在标头中定义成员函数

  7. 7

    从派生的模板类重写纯虚函数

  8. 8

    如何在类模板之外定义类模板的构造函数模板?

  9. 9

    如何使默认构造函数在noexcept类之外定义?

  10. 10

    C ++:从同一类的成员函数调用纯虚函数

  11. 11

    在Singleton DLL中未定义的纯虚函数

  12. 12

    在任何名称空间之外定义C#类

  13. 13

    在类定义之外的模板类成员函数主体中,何时需要模板参数?

  14. 14

    从Python类之外的函数引用已定义的变量

  15. 15

    从类定义之外调用React函数PropType

  16. 16

    在模板化类之外定义非模板函数

  17. 17

    如何在另一个文件的类之外定义类构造函数?

  18. 18

    在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

  19. 19

    如何删除从基类继承的纯虚函数?

  20. 20

    从未定义基类的纯虚函数中调用它?

  21. 21

    如何在类模板之外定义类模板的构造函数模板?

  22. 22

    具有纯虚函数的模板类的C ++语法?

  23. 23

    具有纯虚函数实现的类

  24. 24

    在Singleton DLL中未定义的纯虚函数

  25. 25

    从模板基类覆盖纯虚函数

  26. 26

    在 C# 中的任何类之外可以定义什么?

  27. 27

    在类声明之外定义函数体未编译

  28. 28

    在类定义之外移动函数

  29. 29

    在类定义和静态数据的使用之外定义私有成员函数

热门标签

归档