我有两个文件,link.h 和 channel.h。该链接包含两个类型Channel
为src
和的对象dst
。文件如下:
// channel.h
class Channel {
private:
bool marked;
// ...
public:
void mark(void) { marked = true; }
void unmark(void) { marked = false; }
bool is_marked(void) const { return marked; }
// ...
};
// link.h
#include "channel.h"
class Channel;
class Link {
private:
Channel *src, *dst;
public:
void mark_src(void) { src->mark(); }
void unmark_src(void) { src->unmark(); }
bool is_marked_src(void) const { return src->is_marked(); }
void mark_dst(void) { dst->mark(); }
void unmark_dst(void) { dst->unmark(); }
bool is_marked_dst(void) const { return dst->is_marked(); }
};
编译器 (VC++2008) 给出错误:错误 C2027:使用未定义类型“通道”。我知道这意味着“Channel”类型在编译时是未知的,但有办法解决这个问题,这样我就不必将 Channel 和 Link 类放在同一个 .h 文件或标记的所有实现中同一个 .cpp 文件中的方法?