0

课堂测试:

ostream& operator <<(ostream& os, const Test& test){
    os<<"hooooo"<<endl;
    return os;
}

在测试代​​码中:

Test t2 = Test(10, 20);

为什么cout<< t2 <<endl编译弹出错误?我已经完善了<<。

'std::cout << t2' 中的 'operator<<' 不匹配

4

1 回答 1

0

您需要将其实际定义为友元函数。运算符必须由运算符前面的操作数定义。因此,您使用关键字定义它,friend以便该函数仍然可以处理您的类的内部结构,但可以按照它需要的方式工作。如果我不是很清楚,我很抱歉,我已经有一段时间没有这样做了。也不知道你应该把函数体放在哪里。只需查找friend关键字。

于 2012-11-29T01:34:04.600 回答