0

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

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

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

4

1 回答 1

1

您需要定义您的<<运营商

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

这将要求T<<定义任何类型。

于 2015-02-25T17:34:30.153 回答