定义如下类,请分别写出+运算符的重载成员函数和友元函数的原型声明和定义。 class Exp {private: int x; public: Exp () {} Exp(int a){x=a;} void print(){cout<<"x="<<x<<endl;}//+运算符的重载函数}; int main(){ Exp obj1(10); Exp obj2(20); Exp obj3; obj3=obj1+obj2; obj3.print(); return 0;}
时间: 2023-11-22 20:53:12 浏览: 119
C++运算符重载函数作为类成员函数和友元函数.docx
重载成员函数的原型声明和定义:
```c++
class Exp {
private:
int x;
public:
Exp() {}
Exp(int a) {x = a;}
void print() {cout << "x=" << x << endl;}
Exp operator+(const Exp& obj); // 声明重载+运算符的成员函数
};
Exp Exp::operator+(const Exp& obj) { // 定义重载+运算符的成员函数
Exp temp;
temp.x = this->x + obj.x;
return temp;
}
```
友元函数的原型声明和定义:
```c++
class Exp {
private:
int x;
public:
Exp() {}
Exp(int a) {x = a;}
void print() {cout << "x=" << x << endl;}
friend Exp operator+(const Exp& obj1, const Exp& obj2); // 声明重载+运算符的友元函数
};
Exp operator+(const Exp& obj1, const Exp& obj2) { // 定义重载+运算符的友元函数
Exp temp;
temp.x = obj1.x + obj2.x;
return temp;
}
```
阅读全文