有没有办法打印模板类对象

时间:2015-02-25 17:32:45

标签: c++ oop runtime template-classes

我正在尝试创建用于存储不同值的模板类,例如,我有一个列表,它可以保存任何类型的值。

template<class T>
class LinkedNode
{
private:
    LinkedNode* next;
    LinkedNode* previous;
    T data;

有没有办法打印数据值。或者以某种方式指定T类型应该具有print方法。我有点困惑,因为我来自Java。在Java中,每个类都继承自具有toString()方法的Object。如何打印仅在运行时解决的T类型的值 C ++中的解决方案是什么?或者我必须使用一些类作为基类(虚拟),它将具有所需的方法 我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要定义<<运算符

std::ostream& operator<<(std::ostream& os, LinkedNode const& node)
{
    return os << node.data;
}

这将要求T类型<<已定义。