我已通读应将 operator<< 实现为朋友还是成员函数?和C++ 中的重载插入运算符,看起来类似的问题,但没有解决我自己的问题。
我的头文件:
using namespace std;
class Animal {
private:
friend ostream & operator<< (ostream & o, Dog & d);
int number;
public:
Animal(int i);
int getnumber();
};
ostream & operator<< (ostream & o, Dog & d);
我的cp:
using namespace std;
int Animal::getnumber(){
return number;
}
ostream & Animal::operator<< (ostream & o, Dog & d){
//...
}
Animal::Animal(int i) : number(i){}
实现很简单,但我收到错误:在 cpp -错误:类“动物”类没有成员“操作员 <<”。我真的不明白,因为我已经在 Animal 中将插入运算符声明为朋友,为什么我仍然收到此错误?(将 ostream 公开无济于事)