c++题目:定义一个类Counter,包含私有成员int n,重载运算符+,实现对象相加。求解答。
class Counter
{
friend Counter operator+(Counter& c1, Counter& c2);
public:
int getm_n(int n)
{
int m_n = n;
return m_n;
}
void setm_n(int n)
{
int m_n = n;
}
private:
int n;
};
Counter operator+(Counter& c1, Counter& c2)
{
Counter temp;
temp.n = c1.n + c2.n;
return temp;
}
int main()
{
Counter c1;
c1.setm_n(1);
Counter c2;
c1.setm_n(2);
Counter c3;
Counter c3 = c1 + c2;
cout << c3.getm_n;
}
我的最后一行错了,编译器给的原因是:
指向绑定函数的指针只能用于调用函数
试试这样
class Counter
{
friend Counter operator+(const Counter& c1, const Counter& c2);
public:
int getm_n()
{
return n;
}
void setm_n(int n)
{
this->n = n;
}
private:
int n;
};
Counter operator+(const Counter& c1, const Counter& c2)
{
Counter temp;
temp.n = c1.n + c2.n;
return temp;
}
int main()
{
Counter c1;
c1.setm_n(1);
Counter c2;
c2.setm_n(2);
Counter c3 = c1 + c2;
cout << c3.getm_n();
return 0;
}
getm_n 是一个函数,要加括号并传参数