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;
    }
};
>代码<类>代码> C++(区分大小写)都是小写的,声明以分号结尾。请将真实代码粘贴到您的问题中

在本例中,
xyz
是在
class C
的范围内声明的,因此在使用它时需要指定范围

class B{
    void test(){
        C::xyz obj;
    }
};

我想你遗漏了一些分号
。你手抄本了吗?请把你使用的确切代码贴出来。这个代码显然甚至不接近正确的C++预处理器,必须从<>代码> < <代码> >开始,类定义必须以<代码>结束;代码>,类定义首先使用
class
关键字not
class
。如果您没有完全复制和粘贴您试图编译的内容,您可能会无意中修复错误,或者在过程中引入新的错误。另外,请明确在哪个文件中有哪些代码。我认为您缺少一些分号
。你手抄本了吗?请把你使用的确切代码贴出来。这个代码显然甚至不接近正确的C++预处理器,必须从<>代码> < <代码> >开始,类定义必须以<代码>结束;代码>,类定义首先使用
class
关键字not
class
。如果您没有完全复制和粘贴您试图编译的内容,您可能会无意中修复错误,或者在过程中引入新的错误。另外,请明确哪些代码在哪个文件中。我确信我遗漏了一些基本的东西。很抱歉用大写字母写这节课,我仔细考虑了一下,让它更容易理解。你可以发布的最容易理解的例子是一个。以下是我想发布的内容:我确信我错过了一些基本的东西。很抱歉用大写字母写这节课,我仔细考虑了一下,让它更容易理解。你可以发布的最容易理解的例子是一个。以下是我将要发布的内容: