我有一个List.h和Node.h,在List.h中我写道:
Node *List::getNewNode(const int &value){
return new Node(value);
}
我理解该函数返回Node
,但我不明白为什么在List
这个词有关于指针的声明之前,我可以得到解释吗?
答案 0 :(得分:1)
该函数不会返回Node
,而是返回Node *
或指向Node
的指针。要完全清楚这里使用的类型,您可以将其重写为:
Node * List::getNewNode(const int &value) {
Node * ptrToReturn = new Node(value);
return ptrToReturn;
}
答案 1 :(得分:1)
指针符号属于<form>
First Name:
<INPUT type="text" ><br>
<input type="radio"><br>
<input type="checkbox"><br>
<input type="textarea">
</FORM>
<FORM action="file.php" method="post" name=form1>
<INPUT type="submit" value="Submit">
</FORM>
而不属于Node
。因此返回类型是:
List
并且类方法实现用于:
Node*
。
要理解,您可以使用List::getNewNode
:
typedef
以这种方式实施:
typedef Node* PNode;
答案 2 :(得分:0)
new
运算符为堆上的类Node
的实例分配大小,并调用类的构造函数来初始化该内存。然后它返回一个指向新构造的实例的指针。此代码接收该指针并将其返回给调用者...因此声明该方法返回指向节点或节点*的指针。您可能希望将其视为Node* List::getNewNode...
,但是放入导致您提供的代码的空间是惯用的。