首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止非多态c++基类的实例化

防止非多态c++基类的实例化
EN

Stack Overflow用户
提问于 2015-07-21 10:50:20
回答 3查看 6.7K关注 0票数 13

我有一个不是多态的基类,但我希望防止它被实例化。我应该给这个基类一个纯虚拟析构函数来防止它被实例化吗?但是,给一个非多态基类一个虚拟析构函数是错误的还是错误的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-21 10:51:51

若要防止基类被实例化,请使所有构造函数protected

票数 27
EN

Stack Overflow用户

发布于 2015-07-21 10:56:47

将ctor/dtor保持在受保护的范围内。

票数 2
EN

Stack Overflow用户

发布于 2015-07-21 10:55:19

建议C++中的基类运行虚拟析构函数。C++是一种非常古老的编程语言,在没有虚拟析构函数的情况下,派生类的对象可能被部分或错误地销毁。

当然,纯虚拟析构函数会阻止创建该类的任何实例,但我认为,为了明确说明您不希望这个类被实例化,您还可以创建构造函数protected,正如@Niels在他的回答中指出的那样。

希望这能有所帮助。

票数 -7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31537002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档