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对象引用
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
- C++之重载操作符与友元
- 操作符重载与友元函数
- 重载操作符与友元
- C++学习之友元函数,操作符重载
- C++之操作符重载和友元学习笔记
- C++操作符重载,友元;
- c++友元实现操作符重载
- C++操作符重载 友元基础教程
- 操作符重载及友元函数
- 友元与重载
- C/C++_lesson_10_静态函数、函数指针、友元、操作符重载
- c++操作符重载与友元函数 单目 双目 左移右移 ==号操作符重载 自定义数组
- 运算符重载与友元函数
- 运算符重载与友元
- 友元与运算符重载
- 重载运算符与友元函数
- 友元函数与类重载运算操作符的异同
- 友元函数与操作符重载入门+const修饰this指针
- RSA加密解密及数字签名
- Hibernate 关系映射 总结整理
- 如何克服在公开场合表演时的胆怯心理,也就是怯场?
- 移动共享开发(七)添加社交平台到分享列表
- Leetcode NO.160 Intersection of Two Linked Lists
- C++之重载操作符与友元
- shell脚本方便操作记录(持续添加)
- 第一个VC++2010 窗口程序
- 常见棋类AI人工智能算法
- 辛星笔记之Hadoop权威指南第三篇combiner
- Object-c 中字符串总结
- bluedroid 框架
- Cocos2d-x V2.x CCClippingNode 不裁剪异常显示 小米1、2等机型
- C++输出格式