C++运算符重载

2009-03-11
运算符重载可以赋予已有的运算符多重含义,重新定义运算符的功能~~定义一个运算符重载函数跟定义普通函数相似,只是函数名必须以operator开头,如下:

<返回类型> 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~~编译后运行就可以看到结果了~~

M-OSCAR | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com