C++ cout类为什么可以直接使用? 为什么可以连续用<<

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:13:29
cout类为什么可以直接使用?
就是说不用cout c;
c<<"test";这样的
直接cout<<"test";就可以,为什么?
是把 operator << (char *ch);设成静态函数了吗?
那么在VC里写 static operator << (char *ch);为什么会出错?

为什么可以连续用<<?
就是说可以cout<<"te"<<"st";
而不用cout<<"te"; cout<<"st";
类的代码是怎么写的?

在头文件里已经重载了运算符<<,具体是如何调用硬件的,完全不用理会。
连续用<<是因为重载运算符是通过重载函数实现的,既然是函数,就要有返回值,这里的返回值是*this,就是调用<<的对象本身,所以cout<<"te"的返回值是cout。

你看看运算符重载的章节,里面关于<<和*this说的都很详细.