相关疑难解决方法(0)

为什么不能从c ++ std字符串类派生?

我想询问有效C++中的具体要点.

它说:

如果一个类需要像多态类一样运行,那么析构函数应该是虚拟的.它进一步补充说,由于std::string没有虚拟析构函数,因此永远不应该从中派生出来.还std::string甚至没有设计成一个基类,忘记多态基类.

我不明白一个类中具体要求什么才有资格成为基类(不是多态的)?

我不应该从std::string类派生的唯一原因是它没有虚拟析构函数吗?为了可重用性,可以定义基类,并且多个派生类可以从中继承.那么什么使得std::string甚至没有资格成为基类?

此外,如果存在纯粹为可重用性目的而定义的基类,并且有许多派生类型,是否有任何方法可以阻止客户端执行,Base* p = new Derived()因为这些类并不是要多态地使用?

c++ string inheritance stl

61
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×1

inheritance ×1

stl ×1

string ×1