string var = "Hello";
cout << var << endl;
我们仅使用对象获得结果,而无需成员变量的帮助。我想实现一个像string
一样工作的类。例如:
class Test {
public:
int x = 3;
};
Test var2;
cout << var2 << endl;
如何实现该类,以便cout
行打印x
的值而不引用它?
答案 0 :(得分:0)
std::string
类的操作符<<
已重载,这就是为什么您要编写:
std::string text = "hello!";
std::cout << var1 << std::endl; // calling std::string's overloaded operator <<
简单地打印其保留的文本。
因此,您需要为该类重载<<
运算符:
class Test {
int x = 3;
public:
friend std::ostream& operator<<(std::ostream& out, const Test& t) {
out << t.x;
return out;
}
}
// ...
Test var2;
std::cout << var2 << std::endl;