详解让C++新手闹心的语句“cout<<"Hello!"<

语句“cout<<"Hello!"<输出字符串Hello和换行符到屏幕,下面详解这句话

cout是标准库iostream中的定义好的一个对象(如果你不知道啥叫对象,请参考C++的相关书籍,我这里给大家提供一本我认为比较好的C++学习书籍:PDF电子档链接:http://pan.baidu.com/s/1jHx88dg 密码:xawx),这个cout对象用于将字符数字等显示到屏幕上。cout与<<配合使用就能将字符数字等显示到屏幕上。
那么为cout与<<为啥能这样配合呢?下面就对这个问题解释~
我们不去探究具体的实现过程,我们只从编译器对“cout<<”的认识角度去说明这个问题!在认识这个问题前我们首先看下我们的C++编译器对“+”是怎么实现的?
在C++中的任何运算都是通过函数来实现的,比如说,1+2,编译器会自动将这个表达式解释为:operator+(1,2);
接着再找一下有没有以operator+(int,int)为原型的函数,由于c++已经定义了一个这样的函数,因此会自动调用该函数,然后再将1和2当参数传递进去。同样如果执行浮点数的加法运算4.5+5.6,则也是调用该函数operator+(4.5,5.6);,只是传递的参数类型不同,因而通过重载函数实现了整型和浮点型的参数传递。【PS:如果你不知道什么叫重载函数,可以参看文章:http://c.biancheng.net/cpp/biancheng/view/35.html,函数重载可是c++的一个非常重要的基础,不懂这个完全没法看懂好的c++代码】
同理,对于++运算符,比如++i,系统会自动调用operator++(),参数就是i;在C++中由于多了个对象的念,为了便于大家对程序的书写,所以规定,对象名的前面和后面跟一个操作符等于“对象.操作符”,如果a是一个对象,那么a++或++a等价于a.++再等价于a.operator++(),即相当于调用了a对象中的一个方法函数opeartor++()。再同理,cout<<"Hello!"等价于cout.operator<<( Hello!)。说到这里,大家肯定还是不明白语句“cout<<"Hello!"< 要说明这个问题,我们其实看下表达式1+2+3;就可以理解了,+3不是直接跟在1+2的后面么,而且这个表达示我们都用烂了,根本没啥问题。所以同理我们对于符号<<可以写出这样的形式1<<2<<3;,所以相同的形式有cout<<"Hello!"< 至于cout.operator<<( Hello!)具体和cout.opeartor++( endl))是怎么样实现将字符显示到屏幕上的,我们就不用操心了,这就是人家给我们一个封装好的对象,就没必要考虑那么多了。

 

图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!
图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!
图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!!

你可能感兴趣的:(C/C++的基础与使用,cout,endl)