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);