运算符重载
来源:互联网 发布:有没有画画软件 编辑:程序博客网 时间:2024/06/01 10:52
运算符重载
几乎所有C中的运算符都可以重载,但是重载后的运算符在使用时会受到很大的限制
1.自增(++)自减(–)运算符重载
重载后的++运算符,当我们看到++a时,编译器内部会处理成operator++(a),看到a++时,编译器内部会处理成operator++(a,int),其中int是占位符。
在C++中前置++的实现代码:
T& operator()
{
this->m_A++;
return *this;
}
其中返回值是引用可以不重新建立对象,返回的是本体。
后置++重载:
T operator()
{
T tmp;
tmp.m_A = this->m_A;
this->m_A++;
return tmp;
}
编写代码时,优先使用前置++,二者形式语义上是等价的,前置++效率会略微高一些,前置++少创建了一个临时对象。
自减运算符重载和自增运算符同理。
0 0
- 运算符重载 [++,--,+,<<; &&,||(不可重载)]
- 重载之运算符重载
- 重载赋值运算符
- C++运算符重载
- 运算符重载
- 运算符重载总结
- 运算符重载例子
- 运算符重载
- 运算符重载
- 基础:运算符重载
- 运算符重载
- 运算符重载
- 重载赋值运算符
- C#运算符重载
- C++-运算符重载
- 重载赋值运算符
- 运算符重载
- 有关运算符重载
- HDOJ 1506 Largest Rectangle in a Histogram(单调栈)
- 自学笔记の函数的参数传递
- swagger响应信息码枚举设置方式
- 【LeetCode】Two Sum II
- 1 概论
- 运算符重载
- Android CTS 问题分析
- Navicat for mysql 导入数据
- 2017校赛题解
- py-faster-rcnn安装与配置
- Vue组件开发实践
- Angular2环境配置
- Service 与 Thread 的区别与应用场景理解
- 统计一个字符串内所有字母出现的次数