1、重载赋值运算符
-
实现将对象A按位赋值给对象B。
例如定义一个person类的赋值运算符重载函数:
class Person
{
private:
int age;
char *name;
public:
//省略。。。。
//重载赋值运算符
void operator=(const Person &right)
{
delete [] name;
name = new char [strlen(right.name) + 1];
strcpy(name,right.name);
age = right.age;
}
};
上述函数名为【operator=】,表示类中重载赋值运算符。当此运算符用于person类的对象时,将调用【operator=】函数。
形参right是person类的常引用,代表运算符=右边的对象,执行如下赋值语句时,right表示person1。
person2 = person1;
其次,还有调用运算符函数的第二种方法:
person2.operator = (person1);
在主函数中对上述运算符函数进行测试:
int main()
{
Person jack("jack",20),andrew("andrew"