C++运算符重载(operator)
来源:互联网 发布:网络精灵 编辑:程序博客网 时间:2024/06/13 22:19
C++不允许用户自己定义新的运算符,只能对已有的运算符进行重载.
运算符重载:
有5个运算符不允许重载:
1. . (成员访问运算符).
2. .* (成员指针访问运算符).
3. ::(域运算符).
4. sizeof(尺寸运算符).
5. ?: (条件运算符).
重载时需注意:
1. 不能改变运算符对象的操作个数.
2. 不能改变运算符的优先级别.
3. 不能改变运算符的结合性.
4. 重载运算符的函数不能有默认参数.
5. 重载运算符必须和用户定义的自定义类型的对象一起使用.其参数至少有一个是类对象或类对象的引用.(也就是说.参数不能全部是C++的标准类型.
这样约定是为了防止用户修改用于标准类型结构的运算符性质).
运算符重载格式:
函数类型 operator 运算符名称 (形参列表) {
对运算符的重载处理;
}
例子:
#include <iostream>using namespace std;class Complex {public :Complex();Complex(int r, int i);Complex operator+(Complex &d);//重载+法运算符.void print();private:int i;int r;};Complex::Complex() {this->i = 0;this->r = 0;}Complex::Complex(int i, int r) {this->i = i;this->r = r;}//重载+号.实现两数相加.Complex Complex::operator+(Complex &d) {Complex c;c.i = this->i + d.i;c.r = this->r + d.r;return c;}void Complex::print(){cout<<"("<<i<<","<<r<<")"<<endl;}void main(){Complex c1(3,4), c2(5,6), c3;c3 = c1 + c2; //这句话类似于:c3 = c1.operator+(c2);cout<<"c1=";c1.print();cout<<"c2=";c2.print();cout<<"c3=";c3.print();}
- 2.c++-重载运算符operator
- operator重载运算符
- operator 运算符重载
- operator运算符重载
- operator重载运算符
- C++运算符重载(operator)
- C++重载运算符operator
- 运算符重载之operator
- 运算符重载Operator Overloading
- C++ operator运算符重载
- C++运算符重载:operator
- 运算符的重载 operator
- C++中重载间接运算符(operator->())
- c++之operator运算符重载
- 【c++程序】重载加法运算符operator+
- operator重载运算符(一)
- Swift语言精要 - Operator(运算符重载)
- (多看看)C++重载运算符 operator <<
- android LayoutInflater使用
- MFC 界面线程和工作者线程
- poj 2079 Triangle(凸包+旋转卡壳)
- 获取iOS设备类型
- java 之类对象等于对象
- C++运算符重载(operator)
- functionQuery(函数查询)
- MAC下Android的Eclipse开发环境的搭建
- JS变量名称不能重复
- Warning: mysql_connect(): Access denied for user''@'localhost' (using password: NO) in C:\ApaServ\p
- java study
- 腾讯抄你肿么办
- 云热点技术简介
- Hibernate4与spring整合找不到org.hibernate.cache.CacheProvider问题