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