class student
{
private:
int age;
public:
student();
student(int a) {age = a;}
~student() {};
friend student& operator+ (int left, student& s);
friend ostream& operator<< (ostream& o, student& s);
}
...
student& operator + (int left, student& s)
{
s.age += left;
return s;
}
ostream& operator<< (ostream& o, student& s)
{
o << s.age << endl;
}
int main (void)
{
student a (10);
cout << 14 + a ;
return 0;
}
所以我对上面的代码有两个问题。
为什么一定要
return s;
在operator+ (int left, student& s)
函数中做?为什么你不能把返回类型当作void
你已经通过student
引用传递对象?似乎每当我放
endl
after时都会出现错误14 + a
,我发现了一个错误并且它没有打印出来。我知道这与 `operator <<' 有关,但我不知道它的确切原因,您如何防止这种情况发生?