所以,我有两个班:
class Base {
private:
int number;
public:
friend ostream & operator<<(ostream & output, const Base &n);
}
ostream & operator<<(ostream & output, const Base &n) {
output<<n.a<<endl;
return output;
}
class Child : Base {
private:
int second;
public:
friend ostream & operator<<(ostream & output, const Child &n);
}
ostream & output<<(ostream & output, const Child &n) {
output<<n.second<<Base:: ????<<endl;
return output;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何从子类调用基类的友元函数来输出其内容:
output<<n.second<<Base:: ????<<endl
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
如果您不喜欢强制转换:
ostream & operator<<(ostream & output, const Child &n) {
const Base& b(n);
output<< n.second << b << endl;
return output;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,一般来说,最好将std::endl流式传输留给呼叫者。