【发布时间】:2010-11-20 10:01:08
【问题描述】:
我已经实现了以下类
class graph {
friend ostream& operator<< (ostream&, graph&);
public:
graph() { }
~graph() { clearMap(); }
class node {
friend ostream& operator<< (ostream&, const graph::node&);
public:
node() { }
node(const node&);
node(luint inID) { ID = inID; }
virtual ~node() { neighbors.clear(); }
node& operator=(const node&);
void addNeighbor(luint);
void addNeighbor(const std::vector<luint>& );
luint ID;
std::vector<luint> neighbors;
};
void addNode(const node&);
void addNode(const node*);
void addNode(luint);
void readFile(const char * );
void clearMap();
void randGeom(luint, double);
void connRandGeom(luint, double);
bool isConnected();
protected:
std::map<luint, node*> nodeMap;
};
并创建了一个新的,继承自图
class colorGraph : public graph {
public:
colorGraph() { }
~colorGraph() { }
class colorNode : public graph::node {
public:
colorNode() { }
~colorNode() { }
luint color;
};
};
但是,下面的主程序没有找到合适的功能:
int main() {
pColorGraph myGraph;
myGraph = new colorGraph();
myGraph->isConnected();
return 0;
}
未定义的符号:
“graph::isConnected()”,引用 从: main.o ld 中的 _main:未找到符号 collect2:ld 返回 1 退出 状态
谁能告诉我我做错了什么?
谢谢,
【问题讨论】:
-
你从来没有真正为
graph::isConnected()写过实现?!
标签: c++ inheritance linker-errors