如何仅使用对象名称打印对象特定成员?
How to print the objects specific member using only object name?
string var = "Hello";
cout << var << endl;
我们只使用对象得到结果,没有成员变量的帮助。我想实现一个像 string
一样工作的 class。例如:
class Test {
public:
int x = 3;
};
Test var2;
cout << var2 << endl;
如何实现 class 以便 cout
行打印 x
的值而不引用它?
std::string
class 重载了运算符 <<
,这就是为什么当你写:
std::string text = "hello!";
std::cout << var1 << std::endl; // calling std::string's overloaded operator <<
简单地打印它持有的文本。
因此,您需要为 class:
重载 <<
运算符
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;
string var = "Hello";
cout << var << endl;
我们只使用对象得到结果,没有成员变量的帮助。我想实现一个像 string
一样工作的 class。例如:
class Test {
public:
int x = 3;
};
Test var2;
cout << var2 << endl;
如何实现 class 以便 cout
行打印 x
的值而不引用它?
std::string
class 重载了运算符 <<
,这就是为什么当你写:
std::string text = "hello!";
std::cout << var1 << std::endl; // calling std::string's overloaded operator <<
简单地打印它持有的文本。
因此,您需要为 class:
重载<<
运算符
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;