我有一个不是多态的基类,但我希望防止它被实例化。我应该给这个基类一个纯虚拟析构函数来防止它被实例化吗?但是,给一个非多态基类一个虚拟析构函数是错误的还是错误的呢?
发布于 2015-07-21 10:51:51
若要防止基类被实例化,请使所有构造函数protected。
发布于 2015-07-21 10:56:47
将ctor/dtor保持在受保护的范围内。
发布于 2015-07-21 10:55:19
建议C++中的基类运行虚拟析构函数。C++是一种非常古老的编程语言,在没有虚拟析构函数的情况下,派生类的对象可能被部分或错误地销毁。
当然,纯虚拟析构函数会阻止创建该类的任何实例,但我认为,为了明确说明您不希望这个类被实例化,您还可以创建构造函数protected,正如@Niels在他的回答中指出的那样。
希望这能有所帮助。
https://stackoverflow.com/questions/31537002
复制相似问题