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

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


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

最佳答案

您需要定义您的<<运算符

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


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

10-06 13:52