相关疑难解决方法(0)

C++相当于Java的toString?

我想控制写入流的内容,即cout自定义类的对象.这可能在C++中?在Java中,您可以toString()为了类似的目的覆盖该方法.

c++

145
推荐指数
5
解决办法
10万
查看次数

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

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

它说:

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

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

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

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

c++ string inheritance stl

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

C++中的toString覆盖

在Java中,当一个类重写.toString()并且你这样做System.out.println()时会使用它.

class MyObj {
    public String toString() { return "Hi"; }
}
...
x = new MyObj();
System.out.println(x); // prints Hi
Run Code Online (Sandbox Code Playgroud)

如何在C++中实现这一点,以便:

Object x = new Object();
std::cout << *x << endl;
Run Code Online (Sandbox Code Playgroud)

会输出一些我选择的有意义的字符串表示Object吗?

c++ tostring

36
推荐指数
3
解决办法
4万
查看次数

标签 统计

c++ ×3

inheritance ×1

stl ×1

string ×1

tostring ×1