C++输入输出运算符重载
来源:互联网 发布:网络商业通 编辑:程序博客网 时间:2024/05/22 12:28
1.函数重载定义:
函数重载: 在同一个作用域中,函数名相同,函数的参数列表不同
对于基本类型如:
int i = 10;
cout << i << endl; //编译器解析: cout.operator<<(i);类比上面:
char c = 'a';
cout << c << endl; //编译器解析: cout.operator<<(c);
类比上面:
class Student {};Student s;
cout << s << endl;//error 没有这个函数 cout.operator<<(s);//编译器解析为cout.operator<<(s);//operator(cout,s);
/usr/include/c++/4.6/ostream 文件中 提供好了各种版本的operator<< 函数格式:
friend ostream&/*使用引用是为了连续使用*/ operator<<(ostream& os,const /*加const防止修改*/类名& 对象名)
{ return os << 对象名.成员变量 << 对象名.成员变量<< ......;}
{ return is >> 对象名.成员变量 >> 对象名.成员变量 >> .....;}
注意:不要忘记加friend,因为cout << s << endl; //编译器解析为cout.operator<<(s);或者//operator(cout,s);然而对于第一种方式,我们没有办法把这种函数类型再写入以提供好了的cout 类下;所以只能使用第二种方式,该方式不是类的成员函数,所以要声明为友元;也就是说写在类里面的函数不一定就是成员函数;
2.友元类 和 友元函数
使用关键字friend 修饰的函数和类
(1)友元不是成员,只是为了声明他可以访问我的私有部分而已,被声明为友元的函数可以访问类中的任何成员
(2)友元声明可以出现在类的公有、保护、私有任何一个部分,效果是一样的,一般放在类的开始位置或者结束位置
0 0
- 【C++】重载输入输出运算符
- 【C++】输入输出运算符的重载
- 输入输出运算符重载
- 重载输入输出运算符
- 输入输出运算符重载
- 输入输出运算符重载
- 输入输出运算符重载
- C++重载输入输出运算符
- C++输入输出运算符重载
- C++输入输出运算符重载
- C++输入输出运算符重载
- C++ 输入输出运算符重载
- C++ 输入输出运算符重载
- C++输入输出运算符重载
- 输入输出运算符的重载
- 重载运算符和输入输出流
- 深入解析C++输入输出运算符重载
- 基础备忘:输入输出运算符重载
- C的基础上学习C# (第四章--流程控制)
- 最后的善良
- 数字地和模拟地
- 方程
- Java追加文件内容的三种方法
- C++输入输出运算符重载
- SQL Server数据库附加失败:错误5120和错误950
- 01-计算机网络概述之发展简史01-lh
- c++的类成员权限以及友元
- Django & Google App Engine & Blogs
- HT实习三个月个人总结
- 文本分类入门(十一)特征选择方法之信息增益
- cocos2d-x 3.0 中新的Vector类
- 员工工资