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