Я сделал класс vertex
и Edge
для графа, но я не понимаю, почему Методы Edge
«s GetVer1()
и GetVer2()
не работают! Мне нужно работать с указателями на вершины для моего проекта. Может кто-нибудь мне помочь?C++ VERTEX и классы EDGE не работают
Vertex
код:
typedef class vertex *Vertex;
class vertex {
private:
int Key;
list<Vertex> Adj;
public:
vertex() {}
vertex(int k) { Key = k }
~vertex() {}
void AddAdj(Vertex);
int GetKey();
};
void vertex::AddAdj(Vertex v)
{
Adj.push_back(v);
}
int vertex::GetKey()
{
return Key;
}
Edge
код:
class Edge {
private:
Vertex V1;
Vertex V2;
public:
Edge() {}
~Edge() {}
Edge(Vertex, Vertex);
Vertex GetVer1();
Vertex GetVer2();
};
Edge::Edge(Vertex a, Vertex b)
{
V1 = a;
V2 = b;
}
Vertex Edge::GetVer1()
{
return V1;
}
Vertex Edge::GetVer2()
{
return V2;
}
Main
код:
int main()
{
Vertex a(1);
Vertex b(2);
Edge e(a,b);
Vertex v1 = e.GetVer1();
cout << v1->GetKey(); //it doesn't work!
return 0;
}
Как именно они не работают? Какие результаты вы ожидали и какие результаты вы получили? Пожалуйста, включите эту информацию в свой вопрос. –
Вы не определяете v1. 'Vertex v1 = e.GetVer1();' –
Он просто падает! Да, я определил v1, я просто забыл его скопировать. – Maghio