错误C2027:使用未定义类型'Channel'

时间:2012-07-22 13:11:24

标签: c++ types undefined

我有两个文件,link.h和channel.h。该链接包含两个类型为Channelsrcdst的对象。文件如下:

// 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'在编译时是未知的,但有一种解决方法,所以我不必将Channel和Link类放在同一个.h文件或标记的所有实现中同一个.cpp文件中的方法?

0 个答案:

没有答案