我是采用友元函数来重载<<的。
在类的定义那里,我是这样写的:
friend std::ostream &operator <<(std::ostream &output, BigNum &bignum);
在实现那里,我是这样写的:
std::ostream &operator <<(std::ostream &output, BigNum &bignum)
{
int size = bignum.getSize();
for (int i=0; i<size; i++)
{
output<<bignum.getNum(i);
}
return output;
}
但编译的时候,报告以下错误:
H:\mywork\MyProgram\Caculator\Caculator.cpp|99|error: `std::ostream& BigNum::operator<<(std::ostream&, BigNum&)' must take exactly one argument|
H:\mywork\MyProgram\Caculator\Caculator.cpp|99|error: no `std::ostream& BigNum::operator<<(std::ostream&, BigNum&)' member function declared in class `BigNum'|
H:\mywork\MyProgram\Caculator\Caculator.cpp||In member function `std::ostream& BigNum::operator<<(std::ostream&, BigNum&)':|
H:\mywork\MyProgram\Caculator\Caculator.cpp|100|error: 'class BigNum' has no member named 'getSize'|
H:\mywork\MyProgram\Caculator\Caculator.cpp|109|error: no `int BigNum::getSize()' member function declared in class `BigNum'|
H:\mywork\MyProgram\Caculator\Caculator.cpp|109|error: `int BigNum::getSize()' and `int BigNum::getSize()' cannot be overloaded|
||=== Build finished: 5 errors, 0 warnings ===|
请问是为什么呢?谢谢。