有没有办法打印模板 class 对象
Is there any way to print template class object
我正在尝试创建模板 class 来存储不同的值,例如,我有一个列表,它可以保存任何类型的值。
template<class T>
class LinkedNode
{
private:
LinkedNode* next;
LinkedNode* previous;
T data;
有没有办法打印数据的值。或者以某种方式指定 T 类型应该有打印方法。我有点困惑,因为我来自Java。在 Java 中,每个 class 都继承自具有 toString()
方法的对象。如何打印仅在运行时解析的 T 类型的值。
C++ 中的解决方案是什么?或者我必须使用一些 class 作为具有所需方法的基础 class(虚拟)。
如果有任何帮助,我将不胜感激。
您需要定义 <<
运算符
std::ostream& operator<<(std::ostream& os, LinkedNode const& node)
{
return os << node.data;
}
这将要求任何类型 T
都已定义 <<
。
我正在尝试创建模板 class 来存储不同的值,例如,我有一个列表,它可以保存任何类型的值。
template<class T>
class LinkedNode
{
private:
LinkedNode* next;
LinkedNode* previous;
T data;
有没有办法打印数据的值。或者以某种方式指定 T 类型应该有打印方法。我有点困惑,因为我来自Java。在 Java 中,每个 class 都继承自具有 toString()
方法的对象。如何打印仅在运行时解析的 T 类型的值。
C++ 中的解决方案是什么?或者我必须使用一些 class 作为具有所需方法的基础 class(虚拟)。
如果有任何帮助,我将不胜感激。
您需要定义 <<
运算符
std::ostream& operator<<(std::ostream& os, LinkedNode const& node)
{
return os << node.data;
}
这将要求任何类型 T
都已定义 <<
。