用于存储泛型对象的c++ LinkedList节点
C++ LinkedList Node to store generic objects
如果你有一个通用节点存储int, float或某种类型的对象,你怎么能在你的节点中存储通用对象呢?
typedef struct node{
Dog data;
node* next;
}*nodePtr;
该节点存储Dog对象…如何存储通用对象?
我的一个想法是让Dog对象和所有其他对象从一个更通用的Object类继承。使用模板之外的好方法?
c++为泛型提供了template<>
:
template<typename T>
struct node {
T data;
node<T> *next;
}
制作一个模板,如下所示:
template<typename T>
struct Node
{
T data;
Node<T> *next;
};
查找模板信息的一个很好的资源可以是Wikipedia。
我的一个想法是让Dog对象和所有其他对象从一个更通用的Object类继承。走得好吗?
如果所有类型都有共同之处,则为它们创建一个共同的基类型。
不要仅仅因为希望将所有类型存储在同一个容器中,就使这些类型派生自一个公共基。你把它弄反了。如果希望将所有类型存储在同一个容器中,则它们应该已经具有一些共同之处。否则你的容器就是一串位。它所能做的就是为每种类型分别使用不同的容器。例如,您不能遍历容器并在每个元素上调用方法,因为不存在所有元素都具有的方法!
你说、
在我看来,面向对象的基本原则之一是,所有的类都应该是有意义的。这并不意味着它们必须对应于具体对象,或者甚至包含任何实现,但它们至少必须包含一些接口。一个通用的很好的答案,但我希望通过OO原则来实现。
Object
类在c++中是没有意义的。
相关文章:
- C++:正在检查LinkedList中的回文-递归方法-错误
- 创建LinkedList退出,返回代码为-11(SIGSEGV)
- 在c++中实现LinkedList时,应出现未处理的错误
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 已修改的LinkedList未在文本文件本身中更新
- 如何在 c++ 中处理 LinkedList 的指针
- C++ push() 和 pop() 方法使用指针的动态 LinkedList 的问题
- 在 FreeRTOS 中使用 LinkedList 无法保存值
- 为什么像C++和Java这样的语言有一个内置的LinkedList数据结构
- 将对象添加到LinkedList C 中
- 使用简单的代码从分类的LinkedList中删除重复的节点
- C++中嵌套在另一个 LinkedList 中的 LinkedList 整数上的回调函数问题
- LinkedList实现C 错误指针间接
- 将链接列表复制到linkedlist的引用
- LinkedList removePosition 删除错误的元素
- 在多线程中使用LinkedList队列
- 如何将int数组分配给linkedlist struct
- 具有 LinkedList 的迭代器类
- 基于C 指针的LinkedList
- LinkedList C 中的反向打印