发布网友 发布时间:2023-07-13 21:46
共1个回答
热心网友 时间:2023-09-20 14:31
Node是类模板,DataType 是自定义的类型或者类型别名,直观起见,我给了一个实例,作为参考。
typedef int DataType;追问template ;
struct Node
{
Datatype date;
Node *next;
};
那如果是这样定义,Node *next;中的DataType起到什么作用呢?
追答
之前说 Node 是一个类模板,这个不准确,应该是一个自定义类型的模板(可以是类,也可以是结构体)。
定义模板的目的是节约代码量,比如如下的代码:
template<typename DataType> // typename 和 class 可以互换如果想将 date 指定为整型/浮点型,则将 DataType 指定为 int/float 即可
Node<int> 和 Node<float> 其实是两个结构体:
struct Node1这样定义明显不如使用模板来的简单,只要定义一个模板,直接替换 DataType 就可以定义两个结构体了,显然会节省代码。另外 DateType 可以指定为任意的类型。