先看语句
cout<<"Come up and C++ me some time.";
1.cout是预定义的对象,它可以显示字符串、数字、单个字符。
2.双引号括起来的一系列字符叫做字符串。
3.<<符号表示信息流动的路径。
从cout的使用中我们可以发现对象的长处——我们不需要了解对象内部是怎么工作的,只需要知道它的接口就可以使用它。因此除了自己创造对象、设计类,还可以直接套用他人提供的库。
关于接口这个论断,非常接近于电路理论里面的端口。对象就好比电路元器件,通过端口提供电压或电流,得到特定的响应。而类规定了元器件内部应该具有哪些类型的元件,以及该如何去连线。cout的接口很简单,如果string是一个字符串(可以把它视为字符串变量或常量),则下面的代码将显示该字符串:
cout<<string;
从概念上看,输出是一个流,即从程序流出的一系列字符。cout对象可以表示这种流,也就是说输出的流就是cout的一个属性(类里面定义属性),<<是插入运算符,也是cout对象的属性,规定了对象的操作方法,可以把<<右侧的信息(这些信息也算是cout对象的属性)插入到cout的流的属性中去。
值得注意的是,<<同时也是左移运算符,cpp中允许为用户定义的类重新定义运算符的含义,不过应该挺复杂,萌新也不用太了解啦(我觉得)。
endl是一个控制符,有点像c语言里的转义序列\n,它表示重起一行。再输出流里插入endl将导致屏幕光标移至下一行开头。endl也是在头文件iostream里定义的,它位于名称空间std中。在字符串里使用旧式的“\n”也可以起到一样的效果,可以减少输入量。如果只是换行,则如下:
cout<<"\n";
cout<<endl;
输入量相同,但是输入endl更为方便。
所以实际上通常使用的还是\n。两者还有一个区别是,endl确保程序继续运行前刷新输出(也就是刷新栈啥的,不太懂)。