gpt4 book ai didi

c++ - 为什么我不能在类外定义返回类型 'pointer to struct'的函数?

转载 作者:行者123 更新时间:2023-12-03 07:14:55 25 4
gpt4 key购买 nike

这段代码给出错误“没有声明匹配节点* List::getNewNode(int)”

class List
{
private:
struct Node {
int data;
Node* next;
};

private:
Node* getNewNode(int data);
};

Node* List::getNewNode(int data)
{
Node* newNode = new Node;
newNode->data = data;
newNode->next = NULL;
return newNode;
}
,但是此函数的相同定义在类中起作用
class List
{
private:
struct Node {
int data;
Node* next;
} *head = NULL;

private:
Node* getNewNode(int data)
{
Node* newNode = new Node;
newNode->data = data;
newNode->next = NULL;
return newNode;
}
};
在类声明和括号内定义函数有什么区别?
使用范围解析将其定义在类括号之外或返回类型是问题所在?
编译器:minGW x64

最佳答案

如果您在类定义之外定义函数,则必须提供Node的分辨率(因为它是一个嵌套的类):

List::Node* List::getNewNode(int data)
{
Node* newNode = new Node;
newNode->data = data;
newNode->next = nullptr;
return newNode;
}

关于c++ - 为什么我不能在类外定义返回类型 'pointer to struct'的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64946052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com