我们可以使用structure.element
打印结构的元素。但我想立刻打印一个完整的结构。
是否有类似cout<<strucutre
的方法,就像我们在Python中打印列表或元组一样。
这就是我想要的:
struct node {
int next;
string data;
};
main()
{
node n;
cout<<n;
}
答案 0 :(得分:0)
是。你应该覆盖&lt;&lt;对象cout
的运算符。但是friend ostream& operator<< (ostream & in, const node& n){
in << "(" << n.next << "," << n.data << ")" << endl;
return in;
}
是类ostream的对象,所以你不能简单地重载&lt;&lt;该课程的操作员。你必须使用朋友的功能。函数体看起来像这样:
{{1}}
如果您的班级中有私人数据,该功能就是朋友。
答案 1 :(得分:0)
你需要重载&lt;&lt;操作员:
#include <string>
#include <iostream>
struct node {
int next;
std::string data;
friend std::ostream& operator<< (std::ostream& stream, const node& myNode) {
stream << "next: " << myNode.next << ", Data: " << myNode.data << std::endl;
return stream;
}
};
int main(int argc, char** argv) {
node n{1, "Hi"};
std::cout << n << std::endl;
return 0;
}