0
#include<iostream>
using namespace std;
class exa{
private:
int a;
public:
exa(int b = 0):a(b){}
exa Add(exa obj){ return exa(a+obj.geta()); } //What happened over there?
int geta(){return a;}
};
int main()
{
exa c1(2),c2;
c2.Add(c1);
cout << c2.geta() << endl;
return 0;
}
您没有返回构造函数。您正在返回使用构造函数构造的对象。 'return exa(a + obj.geta())'返回使用'a + obj.geta()'作为整数参数构造的'exa'对象。它调用构造函数:'exa(int b = 0);'用这些参数。类似于你的做法:'exa c1(2)'。您将返回一个匿名实例,而不是使用'c1'等命名实例。 IE:'exa(2)'。 – Brandon
@布兰登:请在_answer section_中写下答案,而不是评论。谢谢。 –