问题描述
比如这种情况
class Node {public: int index; std::vector<Edge> outs;};class Edge {public: double weight; Node vertex;};
问题解答
回答1:先声明一下。
#include<vector>class Edge;class Node {public: int index; std::vector<Edge> outs;};class Edge {public: double weight; Node vertex;};
严格来说 Node 里面应该用 Edge 的指针或引用,或明确支持不完整类型的容器。不过一般 vector 都是基于指针实现的,所以没有问题。
回答2:相互调用类,感觉这样设计其实就有问题