使用多个相互依赖的类

问题描述 投票:0回答:1
duplicate symbol '__ZN6VertexC2Eci' in:
    /private/var/folders/vc/3kj9mnnj0kq7q9p65xwy02f40000gn/T/EDGE-8fc5e7.o
    /private/var/folders/vc/3kj9mnnj0kq7q9p65xwy02f40000gn/T/VERTEX-a123e4.o
duplicate symbol '__ZN6VertexC1Eci' in:
    /private/var/folders/vc/3kj9mnnj0kq7q9p65xwy02f40000gn/T/EDGE-8fc5e7.o
    /private/var/folders/vc/3kj9mnnj0kq7q9p65xwy02f40000gn/T/VERTEX-a123e4.o

我正在尝试创建一个有向无环图,其中包含边和顶点,并允许我对其执行一些拓扑排序以及其他功能。我的顶点将包含一个边向量,它表示导致顶点依赖关系的边,并且我的边类声明还包含一个顶点目标,它表示该边的目标顶点。每次我尝试编译程序时都会收到此错误:

error message

我尝试在 Edge.h 和 Vertex.h 文件中向前声明类。 我决定这样做是因为如果我只在其中任何一个中包含标头(即在 Edge.h 中包含 Vector.h 以便能够使用它),我会收到错误:

根据研究,我发现前向声明是帮助解决该问题的一种方法。 有办法解决这个问题吗?

Edge.H

Edge.cpp

Vertex.cpp

Vertex.h

c++ class
1个回答
0
投票

好吧,你的 Vertex.cpp 和 Edge.cpp 都定义了相同的 Vertex::Vertex(char, int) ——对于你的图像,我无法复制粘贴任何内容或分解你的符号;我假设另一个可能是析构函数。

© www.soinside.com 2019 - 2024. All rights reserved.