我只是在头文件的上半部分中调用了一个类名来绊倒一个c ++代码,例如
class CFoo;
class CBar
{
....
};
我的问题是,class CFoo
是什么?
非常感谢!
答案 0 :(得分:14)
这称为前瞻性声明。这意味着有一个名为CFoo的类,稍后将在文件中定义(或另一个包含)。这通常用于类中的指针成员,例如:
class CFoo;
class CBar {
public:
CFoo* object;
};
这是对C ++编译器的暗示,告诉它不要在没有定义的情况下使用类型名称,即使它还没有看到CFoo的完整定义。
答案 1 :(得分:1)
答案 2 :(得分:1)
class CFoo;
只是该类存在的声明;即使你还没有看过这个定义,你仍然可以玩(CFoo *)或(CFoo&) - 也就是CFoo的指针和引用。