我有一个我制作的类,我在类上方的线程中使用它。即使我在顶部做了一个类的原型,它仍然会抛出这些错误
错误 C2027:使用未定义类型“foo”
class foo;
DWORD WINAPI demo(LPVOID param)
{
foo a;
}
class foo
{
public:
int x;
};
尽管我做了一个原型
班级
With a 前向声明 http://en.wikipedia.org/wiki/Forward_declaration您可以创建该类的指针和引用。这是因为指针/引用在所有类/结构/等中表示相同。它们都只是内存地址。因此,例如,您可以在完全定义该类之前创建第二个可以接受或包含指针或引用的类,即:
class Bar
{
private:
foo* aFoo;
public:
Bar(foo* foo2) : aFoo(foo2) {}
};
然而,直到编译器看到完整的定义类的,你不能实例化它。否则编译器不知道要分配多少内存以及如何调用构造函数和其他方法。在大多数情况下,C++ 期望在使用事物之前对其进行定义。前向声明可以让您稍微解决这个问题,因为任何类的指针和引用都是相同的。因此,您可以向编译器保证稍后将完全定义它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)