我是C ++中面向对象编程的新手,并且一直在尝试为图形问题创建对象。我用谷歌搜索错误发生的情况,但无济于事-主要是关于常量函数的结果。我的代码在下面,我已将错误写为内嵌注释,并在其中显示
#include <iostream>
#include <list>
#include <vector>
class Graph { //'Graph' cannot be defined in the result type of a function
public:
Graph(int n);
private:
std::vector<std::list<int> > Connections;
}
Graph::Graph(int n) { //constructor cannot have a return type
for(int i = 0; i < n+1; i++){
x=1 //placeholder, intended to fill vectors with linked lists
}
}
Graph g = new Graph(10);
我不太确定为什么会出现这些问题,并且非常感谢您的帮助。预先感谢。
答案 0 :(得分:0)
#include <iostream>
#include <list>
#include <vector>
class Graph {
public:
Graph(int n);
private:
std::vector<std::list<int> > Connections;
};
Graph::Graph(int n) {
for(int i = 0; i < n+1; i++){
int x=1;
};
};
int main(){
Graph *g = new Graph(10);
};
如果太混乱,请使用头文件。
另外,在分配新对象时,还需要使用指针,因为要动态分配new。
在@Steve评论中您还缺少分号