我对操作员操作加载概念很陌生,之前提出的相关问题比我早,所以我需要问一个基本问题。
这是.h文件:
#define ACCOUNT_H
using namespace std;
class Account{
friend Account &operator+ (Account &acc);
friend ostream &operator<< (ostream &, Account &);
public:
Account(double=100.0,double=0.0,double=0.0);
Account &returnSum(Account &otherAccount) const;
Account& operator+=(Account &Acc1);
void setT(double);
void setD(double);
void setE(double);
double getT(void);
double getD(void);
double getE(void);
void printAccount();
private:
double t;
double d;
double e;
};
#endif
我需要+
作为全局函数重载“带有单个参数”(这对我来说是具有挑战性的部分)和+=
成员函数(在这里我假设我不能采用右侧操作数,因为它是一个成员函数,所以是有问题的部分)。这是我的实现+=
:
Account &Account ::operator+=(Account &Acc1){
Account *result = new Account(Acc1.getT()+t,Acc1.getD()+d,Acc1.getE()+e);
Acc1 = *result;
return *this;
}
如果您能纠正这一点+=
并为我写一个重载实现,我将不胜感激+
。我只需要将 t,d,e 值添加为 Account 对象。