c++学习
–运算符重载
环境:
codeblocks:17.12
系统:windows10 家庭版
输入输出运算符重载,只能重载成友元函数
输出运算符重载
通常情况下,输出符只能直接输出标准类型的值,而我们自定义类型是不能直接输出的
cout返回值为cout
cout << p1 返回值还是cout,因为可以继续加<<输出
我们在Person对象中声明ostream友元函数friend ostream& operator<<(ostream &outPut,const Person &p);
然后函数体
ostream& operator<<(ostream &output,const person &p) { output << p.name "-" p.address; return output; } < code>(ostream>
这个时候我们再去输出p1试试
这个时候可以发现,cout可以直接输出我们的自定义类型
输入运算符重载
正常情况下
这样是不行的,不能直接给自定义类型输入值,但是我们重载输入运算符就能自己自定义
声明:
friend istream& operator>>(istream &inPut, Person &p)
函数体
istream& operator>>(istream &inPut, Person &p)
{
p.address = new char[10];
inPut >> p.name >> p.address;
return inPut;
}
测试一下
重载成功