057day(流插入,流提取运算符和类型转换运算符的重载)

本文探讨了C++中流插入和流提取运算符的重载机制及其应用,通过实例说明如何自定义这些运算符以实现类对象的输入输出。此外,还介绍了类型转换运算符的重载方法,使用户自定义类型可以被隐式转换为内置类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

172210704111-陈国佳总结《2017年12月6日》【连续057天】

标题:流插入,流提取运算符和类型转换运算符的重载;

内容:

A.流插入和流提取运算符:

cout<<5<<"this";为什么能够成立?

“<<”(左移)   “>>”(右移)

其中,cout是iostream中定义的ostream类的对象,而“<<”进行了重载;

实现:

ostream & ostream::operator<<(int n)

{  .........     return*this;}

 ostream & ostream::operator<<(const char*s)

{  .........     return*this;}

注:返回值是orstream&是为了cout<<5返回为cout,与后面的<<"this"继续反应;

函数调用形式:cout.operator<<(5).operator<<("this");

举例:

class CStudent{
public: int nAge;
};
ostream & operator<<(ostream & o,const CStudent & s){
o<<s.nAge;  return o;
}             //注意要定义成全局函数
int main(){
CStudent s;
s.nAge=5;
cout<<s<<"hello";
return 0;
}


B.类型转换运算符重载:

class Complex{
double real,imag;
public:
Complex(double r=0,double i=0):real(r),imag(i){ };
operator double () { return real;}   //注意重载函数的返回值就为double,不需要写 
};

int main()
{
Complex c(1.2,3.4);
cout<<(double)c<<endl;
double n=2+c;  //等价于 double n=2+c.operator double() 
cout<< n;




明日计划:自增,自减运算符的重载;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值