c ++ - 返回指针的语句 - 解释它是如何工作的以及原因

时间:2017-05-13 08:21:33

标签: c++

我有一个List.h和Node.h,在List.h中我写道:

Node *List::getNewNode(const int &value){
    return new Node(value);
}

我理解该函数返回Node,但我不明白为什么在List这个词有关于指针的声明之前,我可以得到解释吗?

3 个答案:

答案 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...,但是放入导致您提供的代码的空间是惯用的。