C++之重载操作符与友元

来源:互联网 发布:人工智能应用场景 编辑:程序博客网 时间:2024/05/19 15:41
操作符重载c++多态的一种形式。重载函数形式:operator op(argument -list),其中op是操作符,操作符重载限制:
 1.重载后的操作符必须有至少一个用户自定义的类型(防止用户为标准类型重载操作符)。譬如不能重载操作符“-”去做double类型的减法
 2.使用操作符不能违反原操作符的语法规则。譬如你不能将一个求模操作符(%)重载成一个使用操作数:
 int x;
 Time shiva;
 %x;
 %shiva;
 同样不能修改原操作符的优先级
 3.不能定义新的操作符
 4.不能重载一下的操作符:
 sizeof-sizeof操作符
 .——成员操作符
 .*——成员指针操作符
 ::——作用域解析操作符
 ?:——条件操作符
 typeid——一个RTTI操作符
 const_cast——强制类型转换操作符
 dynamic_cast——强制类型转换操作符
 reinterpret_cast——强制类型转换操作符
 static_cast——强制类型转换操作符
 常用友元:重载<<操作符
 :
 void operator <<(ostream &os,const Time &t)——重载了<<操作符,能输出一个类对象,但不能拼接输出
 譬如:
 cout<<t1<<"sdfsda"<<endl;
 当cout<<t1时结束后,由于void oprator<<(),没有返回对象之后的<<都输出不了;
 修改为:ostream & operator<<(ostream &os,const Time &t)//返回一个ostream对象引用

 就可以拼接输出了。



0 0
原创粉丝点击