我已将代码隔离在两个文件中,如下所示。这是头文件graph.h
//graph.h
#ifdef GRAPH_H
#define GRAPH_H
#include <vector>
#include <fstream>
#include "kernel_def.h"
using namespace std;
typedef vector<bool> Array;
typedef vector<Array> TwoDArray;
class baseGraph {
private:
int nodes; /*Number of nodes.*/
vector<feature_vector *> vec; /*vector of feature nector.*/
public:
baseGraph(int nodes);
/*set-get functions*/
int getNodes();
void setNodes(int nodes);
const feature_vector *getVec(int pos);
int setVec(int pos, feature_vector *fVec);
/*Input edges from file and set up in corresponding representation.*/
virtual void setGraph(ifstream &ipf) = 0;
/*Utility functions*/
virtual void printGraph() = 0;
virtual feature_vector *subgraph_d(int node, int depth) = 0; /*subgraph upto depth d.*/
};
这是graph.cpp
//graph.cpp
#include <iostream>
#include "graph.h"
using namespace std;
baseGraph::baseGraph(int nodes) {
setNodes(nodes);
/*feature vetors will be assigned later.*/
vec.resize(nodes);
for(int i=0;i<nodes; ++i)
vec.at(i) = NULL;
}
编译时出现错误src/graph.cpp:7:1: error: ‘baseGraph’ does not name a type
。我不明白为什么会这样。任何帮助表示赞赏。