实例化类时出现不完整类型错误
Incomplete type error when instantiating class
我有一个顶点类,它有一个id和邻接表作为私有成员。邻接表以映射的形式存储。当我实例化这个类的对象时,我想创建一个空映射。我正在从python切换到c++,事实证明它比我想象的要难。下面是该类的代码:
#include "vertex.h"
class Vertex {
char _id;
std::map<char, int> _adjList;
public:
void addNeighbor(Vertex, char neighbor, int weight);
std::vector<char> getConnections(Vertex);
char getId();
int getWeight(Vertex, char neighbor);
Vertex(char);
};
Vertex::Vertex(char id){
std::map<char, int> adjList;
_adjList = adjList;
_id = id;
}
void Vertex::addNeighbor(Vertex v, char neighbor, int weight){
v._adjList.insert(std::map<char, int>::value_type(neighbor, weight));
}
std::vector<char> Vertex::getConnections(Vertex v){
std::vector<char> ids;
for(std::map<char,int>::iterator it = v._adjList.begin(); it != v._adjList.end(); ++it) {
ids.push_back(it->first);
};
return ids;
}
char Vertex::getId(){
return _id;
}
int Vertex::getWeight(Vertex v, char neighbor){
return v._adjList[neighbor];
}
现在当我在main
中实例化它时Vertex V('a');
编译器抛出变量类型Vertex不完整的错误。非常感谢任何帮助。基本上,我想构造一个具有id和空映射的对象,该映射将保存id和到相邻节点的路径权重。我这样做是为了学习
My vertex.h has:
#ifndef __graphs__vertex__
#define __graphs__vertex__
#include <stdio.h>
#include <map>
#include <vector>
class Vertex;
#endif
然后在main中加入vertex。h
顶点的定义应该在header中,而不是在cpp中:
我修正了方法的声明,以添加const
并删除参数Vertax,因为您应该使用this
值。
#ifndef graphs_vertex_h
#define graphs_vertex_h
#include <map>
#include <vector>
class Vertex {
char _id;
std::map<char, int> _adjList;
public:
explicit Vertex(char);
void addNeighbor(char neighbor, int weight);
std::vector<char> getConnections();
char getId() const;
int getWeight(char neighbor) const;
};
#endif
相关文章:
- 类没有命名C++代码中的类型错误
- 不完整类型错误(E0409、E0070、E0515)
- 使用具有结构不完整类型错误的模板
- 不命名构造函数和析构函数上的类型错误
- 返回派生类型时出现协变类型错误
- 为什么此构造函数没有给出不完整的类型错误?
- 定义模板化结构的特征时出现不完整的类型错误
- 使用重载构造函数时出现不完整的类型错误
- 为什么我得到表达式必须有类类型错误?
- 输出 [left]=input[i] 行中的 c++ 代码中存在无效的类型错误
- 枚举成员不是类型错误
- 如何修复"ctypes"。参数错误:参数 2:<键入"异常.类型错误">:RaspberryPi 中的错误类型"错误
- 外部 "C" Visual Studio 2015 中的显式类型错误,DLL 测试代码
- 非默认析构函数会导致不完整的类型错误
- 为什么按引用传入会导致绑定引用类型错误
- Objective-C C++ 包装器 类型错误的不完整定义
- 输入类型错误
- 当构造函数的参数类型错误时引发异常
- 命名空间中的'bad_cast' 'std' 未命名类型错误
- C UNWORKOWN类型错误