我是个菜鸟。在Clion中使用C ++
我在笛卡尔平面上建立N个随机节点的图表
我有一个简单的类型,节点(只是一个点)(int x,int y)
节点pt(x,y)
我有一个N个随机生成的独特点的向量(这会被视为有序点btw吗?) vector NodeList(N);
我有一个Graph(Incomplete)类,它有一个GenNodelist函数,我已经测试它作为一个独立的程序。我有一段时间只是在没有编译错误的情况下构建构造函数。
#include <iostream>
#include <vector>
#ifndef DIJKSTRA_GRAPH_H
#define DIJKSTRA_GRAPH_H
using namespace std;
class Graph {
private:
int x;
int y;
vector<int> NodeList;
int *np;
public:
//constructor
x(x),y(y),NodeList(),np(){}
void GenNodeList(vector<int> NL(), int &np) {x,y,NodeList, &np; }
void GenNodeList(vector<int> *NL, int *p);
};
#endif //DIJKSTRA_GRAPH_H
void Graph::GenNodeList(vector<int>* NL, int* p) {
.
.
} .
... code that builds and has been quasi tested
所以一切都建立起来,并且有一个'#34; hello world&#34;该项目的主要计划。 2个类,(节点和图形:2个标题和2个cpp文件)以及主要的&#34; hello world&#34;建立和运行。现在从main()我想从main调用GenNode函数。我只是想传递一个指针并让列表生成并坐在内存中UN-mutable。马上。我稍后会建立这个图表。当我尝试调用该函数时,没有任何作用。如何构建此列表并从main()和Graph()访问它?
main(){
vector<int> NL(N);
int *np;
Graph::GenNodeList( NL, np);
}
似乎无法解决这个问题。
答案 0 :(得分:0)
这段不完整的代码
Graph::GenNodeList( NL, np);
格式错误,因为该方法不是静态的。您必须为非静态成员访问类Graph的实例。这里没有任何关于oop,只是语言的规则。
答案 1 :(得分:0)
Graph(): x(x),y(y),NodeList(),np(){}
static void GenNodeList(vector<node>* NL, node* np);
void Graph::GenNodeList(vector<node>* NL, node* p) {
int main() {
vector<node> NL(N);
vector<node>* NList;
node *np = nullptr;
NList = &NL;
Graph::GenNodeList(NList,np);
return 0;
https://github.com/Pasqualino31/Dijkstra/tree/Pasqualino31-patch-2