【发布时间】:2017-04-20 21:54:55
【问题描述】:
我正在尝试使用代码重载
inline ostream& operator<< (ostream& out, Node& n){n.print(out); return out;}
而我调用的打印函数只是
void Node::print(ostream& out){
out<< freq << " " << input<<" " << Left<< " " << Right<< endl;
}
当我调用 print 函数时,Left 和 right 都是以十六进制打印的指针。但是当我使用 当我尝试打印它时,我正在打印一个 Node*,我不知道这是否与它有关。
感谢您的帮助。
【问题讨论】:
-
仅供参考,
Node应该由 constant 引用传递,例如const Node& n。另外,将Node::print更改为常量方法:void Node::print(ostream& out) const -
真正的问题是什么?
标签: c++ printing overloading