C++11 中默认纯虚析构函数的正确放置

亚历克斯

我有一个接口类,但我希望所有派生类都实现虚拟析构函数:

// Interface.h
class Interface {
    virtual ~Interface() = 0;
};

Interface::~Interface() = default;

问题是,在这种情况下,由于符号重复,我有一个链接器错误。

我可以将定义放在.cpp文件中,但我想知道是否有更优雅的解决方案?

用户184968

您可以之前添加内联。根据http://en.cppreference.com/w/cpp/language/destructor这个语法是可以的:

decl-specifier-seq(optional) ~ class_name () = default;

decl-specifier-seq  -   friend, inline, virtual, or nothing (no return type) 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++ 11中的纯虚函数

来自分类Dev

C ++ 11接口纯虚拟析构函数

来自分类Dev

C ++ 11在派生类中删除的析构函数

来自分类Dev

默认的析构函数C ++ 11样式应该放在哪里,标头或cpp?

来自分类Dev

C ++ 11线程,错误调用了纯虚函数

来自分类Dev

C ++ 11构造函数继承和纯虚方法

来自分类Dev

在C ++中从派生类的析构函数调用虚函数

来自分类Dev

通过类析构函数中的重置成员shared_ptrs解决C ++ 11 shared_ptr循环参考?

来自分类Dev

C ++ 11虚拟析构函数和自动生成移动特殊功能

来自分类Dev

C ++:具有成员的抽象类中的纯虚拟析构函数

来自分类Dev

C ++:具有成员的抽象类中的纯虚拟析构函数

来自分类Dev

D中的C ++ DLL(纯虚函数)

来自分类Dev

D中的C ++ DLL(纯虚函数)

来自分类Dev

pybind11 中受保护的虚拟析构函数

来自分类Dev

C ++中的析构函数直接调用

来自分类Dev

C ++析构函数中的堆栈溢出

来自分类Dev

析构函数在C ++中调用向量

来自分类Dev

C ++中的循环链表的析构函数?

来自分类Dev

C ++在析构函数中杀死线程

来自分类Dev

C ++中的“隐式析构函数”

来自分类Dev

C ++中的析构函数直接调用

来自分类Dev

C ++放置新功能,继承和析构函数

来自分类Dev

C ++放置新功能,继承和析构函数

来自分类Dev

C ++ 11函数参数

来自分类Dev

C ++:noexcept(或throw())虚拟析构函数=默认值;

来自分类Dev

C++11:我可以显式调用基类析构函数来销毁派生类吗?

来自分类Dev

C ++是否为纯虚拟类创建默认的“构造函数/析构函数/复制构造函数/复制赋值运算符”?

来自分类Dev

C ++是否为纯虚拟类创建默认的“构造函数/析构函数/复制构造函数/复制赋值运算符”?

来自分类Dev

C ++ 11中的Unicode

Related 相关文章

  1. 1

    C ++ 11中的纯虚函数

  2. 2

    C ++ 11接口纯虚拟析构函数

  3. 3

    C ++ 11在派生类中删除的析构函数

  4. 4

    默认的析构函数C ++ 11样式应该放在哪里,标头或cpp?

  5. 5

    C ++ 11线程,错误调用了纯虚函数

  6. 6

    C ++ 11构造函数继承和纯虚方法

  7. 7

    在C ++中从派生类的析构函数调用虚函数

  8. 8

    通过类析构函数中的重置成员shared_ptrs解决C ++ 11 shared_ptr循环参考?

  9. 9

    C ++ 11虚拟析构函数和自动生成移动特殊功能

  10. 10

    C ++:具有成员的抽象类中的纯虚拟析构函数

  11. 11

    C ++:具有成员的抽象类中的纯虚拟析构函数

  12. 12

    D中的C ++ DLL(纯虚函数)

  13. 13

    D中的C ++ DLL(纯虚函数)

  14. 14

    pybind11 中受保护的虚拟析构函数

  15. 15

    C ++中的析构函数直接调用

  16. 16

    C ++析构函数中的堆栈溢出

  17. 17

    析构函数在C ++中调用向量

  18. 18

    C ++中的循环链表的析构函数?

  19. 19

    C ++在析构函数中杀死线程

  20. 20

    C ++中的“隐式析构函数”

  21. 21

    C ++中的析构函数直接调用

  22. 22

    C ++放置新功能,继承和析构函数

  23. 23

    C ++放置新功能,继承和析构函数

  24. 24

    C ++ 11函数参数

  25. 25

    C ++:noexcept(或throw())虚拟析构函数=默认值;

  26. 26

    C++11:我可以显式调用基类析构函数来销毁派生类吗?

  27. 27

    C ++是否为纯虚拟类创建默认的“构造函数/析构函数/复制构造函数/复制赋值运算符”?

  28. 28

    C ++是否为纯虚拟类创建默认的“构造函数/析构函数/复制构造函数/复制赋值运算符”?

  29. 29

    C ++ 11中的Unicode

热门标签

归档