c++中的String类,为啥直接用于cout就能输出?它里面包含了啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中的String类,为啥直接用于cout就能输出?它里面包含了啥?相关的知识,希望对你有一定的参考价值。

不太明白你的意思,不过C++中的cout是一个输出流(ostream)类的对象,你写的这行代码using namespace std就是为了引入cout、cin等等对象的,其有一个成员函数operator<<,所以能够向屏幕输出内容,并且由于该成员函数进行了重载,使得其可以输出各种基本数据类型和String类型的数据。这就跟Java中的输出语句System.out.println()中的prinln()是打印流类(PrintStream,System.out就是该类的对象)一样的。追问

那String类里面应该有一个函数,配合cout对象中的<<运算符重载吧?

追答

不是,是cout所属的类ostream里面重载了处理所有类型数据的operator<<()方法,

String在C语言里面是以char[]的形式顺序存储的,char类型又可以转换为int类型,所以cout可以输出字符串,而C++中的String类型为这一切做了封装。使得你直接调用它就可以输出各种类型的数据

参考技术A 重载了<<运算符的吧?

以上是关于c++中的String类,为啥直接用于cout就能输出?它里面包含了啥?的主要内容,如果未能解决你的问题,请参考以下文章

c++里边string类用数组的形式输入为啥无法用cout输出?

C++中关于string类型究竟能不能用cout输出的问题

C++用重载输出一个类

为啥相同的语句不适用于 C++ 中的类成员?

C++中cout<<字符数组名;为啥能输出字符串?

c++程序 我为啥不能将string类的变量赋给char数组,我按书上打的?