为什么我不能创建一个变量?

时间:2015-04-02 02:08:31

标签: c++

我有两个类:Clique和Graph, 当我尝试在Graph类中创建“Clique c”时,VS给了我两个错误:

错误C2065:'Clique':未声明的标识符 错误C2065:'c':未声明的标识符

我试图解决它很长一段时间而且我被卡住了,请帮助我。 这是我的代码:

Clique:http://pastebin.com/jw3FQv95 图表:http://pastebin.com/bwLakmY0

感谢。

1 个答案:

答案 0 :(得分:1)

您有循环收录,Graph.hpp包括Clique.hppClique.hpp包含Graph.hpp

由于要在Graph类中分配Clique,你需要知道它的完整定义,你被迫在一个单独的源文件(Graph.cpp)中移动需要它的方法,这样你就会有类似

/* Clique.hpp */
#include "Graph.hpp"

class Clique { ... }

/* Graph.hpp */
// possibly a forward declaration to Clique here
class Graph {
  ...
  Graph(const std::string &file, const double &th, const bool &debug, const bool &convert, const int &max_clique);
};

/* Graph.cpp */
#include "Clique.hpp"

Graph::Graph(const std::string &file, const double &th, const bool &debug, const bool &convert, const int &max_clique)
{
  ...
}