C++ 结构和模板 模板 结构列表项 { T值; 列表项*下一步; ListItem*prev; 列表项(T theVal) { 此->值=值; 此->下一步=空; 此->上一个=空; } };

C++ 结构和模板 模板 结构列表项 { T值; 列表项*下一步; ListItem*prev; 列表项(T theVal) { 此->值=值; 此->下一步=空; 此->上一个=空; } };,c++,C++,谁能告诉我在上一个指针被声明之后发生了什么。我的意思是它是什么样的结构?很抱歉问了一个可能很愚蠢的问题。谢谢 template <class T> struct ListItem { T value; ListItem<T> *next; ListItem<T> *prev; ListItem(T theVal) { this->value = theVal; this->next = NULL;

谁能告诉我在上一个指针被声明之后发生了什么。我的意思是它是什么样的结构?很抱歉问了一个可能很愚蠢的问题。谢谢

template <class T>
struct ListItem
{
   T value;
   ListItem<T> *next;
   ListItem<T> *prev;

   ListItem(T theVal)
   {
    this->value = theVal;
    this->next = NULL;
    this->prev = NULL;
   }
};
这是此结构的构造函数,具有
This->value=theVal作为参数传入的值被分配给结构的成员

如果你还不知道构造器,那么阅读一下它们是明智的

ListItem(T theVal)
{
    this->value = theVal;
    this->next = NULL;
    this->prev = NULL;
}
是一个内联构造函数定义。它指定如何初始化
ListItem
类模板的实例。
数据成员设置为
,列表的
下一个
上一个
指针设置为
。您可以将这样的构造函数称为

ListItem(T theVal)
{
  this->value = theVal;
  this->next = NULL;
  this->prev = NULL;
}
列表项li(42);

我知道“this”的作用,但为什么该值等同于VAL?不是“等同”,而是赋值。成员变量
value
theVal
获得赋值。如果你不知道,你可能应该退后一步,重新学习基础知识。因此,如果我想更改结构的值,比如列表,我必须执行列表->值??不,不是
theVal
,而是
value
尝试阅读一本书或遵循一些关于c/c++的教程,这些都是非常基本的问题谢谢!我很感激。我更喜欢原始的初始化语法。就性能而言,它是等效的,并且避免了发生冲突的风险……但我没有想到“新的”。我想太多的Java了。
ListItem<int> li(42);