重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符符号。除了函数调用操作符之外,重载操作符的形参数目(包括成员函数的隐式this指针)与操作符的操作数数目相同。函数调用操作符可以接受任意数目的操作数。
大多数操作符都可以重载,所以我列出不能重载的操作符,一共有四种:
:: .* . ?:
当操作符为类的成员函数时,this指向左操作数。
下面通过实例说明操作符重载
源代码下载:点击下载。
1、算术操作符
定义一个Point类,Point.h头文件:
// Point.h: interface for the Point class. #if !defined(AFX_POINT_H__E8270DD2_C889_4B24_BC82_E154B77FDFCF__INCLUDED_) #if _MSC_VER > 1000 class Point }; #endif // !defined(AFX_POINT_H__E8270DD2_C889_4B24_BC82_E154B77FDFCF__INCLUDED_) |
Point.cpp源文件:
// Point.cpp: implementation of the Point class. #include "Point.h" ////////////////////////////////////////////////////////////////////// Point::Point() } this->x=x; Point::~Point() } return p; int Point::getX() return this->x; |