C++ 错误c2036:结构的大小未知
我在文件C++ 错误c2036:结构的大小未知,c++,C++,我在文件allocate.h中定义了2个类(A&C),在work.h中定义了B类 我将allocate.h包含在work.h文件中 我的代码如下所示: Class A{ } Class C { public: struct xyz{ A ob; }; } include"allocate.h" Class C; Class B{ void test(){ xyz obj; // `Error
allocate.h
中定义了2个类(A&C),在work.h
中定义了B类我将allocate.h包含在work.h文件中
我的代码如下所示:
Class A{
}
Class C
{
public:
struct xyz{
A ob;
};
}
include"allocate.h"
Class C;
Class B{
void test(){
xyz obj; // `Error : error c2036 : xyz unknown size`
}
}
<> P>可以告诉我如何在函数测试中传递XYZ结构的大小吗? < P> <代码>类<代码>,C++中(大小写敏感)都是小写的,声明以分号结尾。请将真实代码粘贴到您的问题中
在本例中,xyz
是在class C
的范围内声明的,因此在使用它时需要指定范围
class B{
void test(){
C::xyz obj;
}
};
xyz
是在class C
的范围内声明的,因此在使用它时需要指定范围
class B{
void test(){
C::xyz obj;
}
};
我想你遗漏了一些分号
代码>。你手抄本了吗?请把你使用的确切代码贴出来。这个代码显然甚至不接近正确的C++预处理器,必须从<>代码> < <代码> >开始,类定义必须以<代码>结束;代码>,类定义首先使用class
关键字notclass
。如果您没有完全复制和粘贴您试图编译的内容,您可能会无意中修复错误,或者在过程中引入新的错误。另外,请明确在哪个文件中有哪些代码。我认为您缺少一些分号代码>。你手抄本了吗?请把你使用的确切代码贴出来。这个代码显然甚至不接近正确的C++预处理器,必须从<>代码> < <代码> >开始,类定义必须以<代码>结束;代码>,类定义首先使用class
关键字notclass
。如果您没有完全复制和粘贴您试图编译的内容,您可能会无意中修复错误,或者在过程中引入新的错误。另外,请明确哪些代码在哪个文件中。我确信我遗漏了一些基本的东西。很抱歉用大写字母写这节课,我仔细考虑了一下,让它更容易理解。你可以发布的最容易理解的例子是一个。以下是我想发布的内容:我确信我错过了一些基本的东西。很抱歉用大写字母写这节课,我仔细考虑了一下,让它更容易理解。你可以发布的最容易理解的例子是一个。以下是我将要发布的内容: