c++中类之间的相互引用

mutual reference between classes in c++

本文关键字:引用 之间 c++      更新时间:2023-10-16

很多时候,两个或多个类的实例(很可能是共享头文件的类)通过指针相互引用是很自然的。例如,在一个图中,一条边需要引用它的顶点,反之亦然。相互引用可以通过前向声明来完成,但我希望两个类可以相互操作,即使用彼此的方法或字段。例如,我想,当连接边缘到顶点,两个指针(边->myVertex,顶点->myEdge)可以在一个方法中分配,这可以是任何一个类。有办法吗?谢谢。

方法是使用自由函数,即算法来做这些事情。否则,您的类将失去其语义。例如,您可以使用:

void connect_vertices(Vertex<T> v1, Vertex<T> v2, Edge<T> e) {
}

处理逻辑的函数

你在想这个吗?

void Edge::setVertex(Vertex &v)
{
  myVertex = &v;
  v.myEdge = this;
}