在我们已经包含LinkedList.h之后,为什么需要LinkedList :: List * LinkedList :: getMiddleNode()?据我了解,include应该导入所有文件变量(即struct List)和声明。
这是头文件。
class LinkedList{
private:
struct List {
int num;
List* next;
};
List* head;
public:
...
...
List* getMiddleNode();
};
现在这是CPP文件。
#include <iostream>
#include "LinkedList.h"
LinkedList::List* LinkedList::getMiddleNode() {
...
...
return node;
}
最佳答案
在我们已经包含LinkedList.h之后,为什么需要LinkedList :: List * LinkedList :: getMiddleNode()?
因为编译器需要知道您要定义的是类LinkedList
的方法,而不是独立的函数。没有人会阻止您声明/定义独立函数以及类似这样的方法:
class LinkedList {
public:
LinkedList::List* LinkedList::getMiddleNode();
...
};
LinkedList::List* getMiddleNode();
您如何告诉编译器是哪一个?
关于c++ - 为什么在CPP文件中需要范围解析运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41667039/