<返回类型> operator <运算符>(<形参表>){....}
<返回类型><类名>::operator <运算符>(<形参表>){....}
重载的运算符必须是C++的合法运算符,如+、-、*、/、++等,下面来个例子:
#include <stdio.h>
#include <string.h>
class Person{
private:
char name[20];
unsigned int age;
public:
//构造函数
Person(const char *pname,unsigned int page){
strcpy(name,pname);
age=page;
}
//重载运算符+,返回两个Person实例的age相加
int operator +(Person &p){
return age+p.age;
}
};
int main(){
//创建两个Person
Person *p1=new Person("Oscar Tang",23);
Person *p2=new Person("JoJo Zhou",22);
//测试一下重载后的+号~~
printf("%d\n",*p1+*p2);
}
OK~~编译后运行就可以看到结果了~~
0 意見