C++ 类中的结构不是类型

C++ 类中的结构不是类型,c++,class,struct,C++,Class,Struct,我需要一些设计和返回结构的帮助。我做了一个类似的结构,我得到一个错误,说: “c类中的a不是类型” 我怎样才能解决这个问题 a、 h #包括 结构a{ int i; 向量j; }; b、 h #包括 c类{ 私人: a a_; 虚拟bool-execute(); void计算(&a1) 公众: 函数名(); } b、 抄送 #包括 c::execute() { aa_u=函数_name(); } d、 抄送 #包括 c::a c::函数_name() { 计算(a_); 返回*a; } b

我需要一些设计和返回结构的帮助。我做了一个类似的结构,我得到一个错误,说:

“c类中的a不是类型”

我怎样才能解决这个问题

a、 h

#包括
结构a{
int i;
向量j;
};
b、 h

#包括
c类{
私人:
a a_;
虚拟bool-execute();
void计算(&a1)
公众:
函数名();
}
b、 抄送

#包括
c::execute()
{
aa_u=函数_name();
}
d、 抄送

#包括
c::a c::函数_name()
{
计算(a_);
返回*a;
}

b.h
包括
a.h
a
是全局范围内的类型,a
a
没有神奇地继承
c
命名空间

如果在
c
声明中声明了
a
,则需要
c::a

class c{
private: 
  struct a {
所以修复方法是从
c::a
中删除名称空间:

a c::function_name()
注意:此处使用的命名约定(如果有)无助于理解这些示例


另外:
void compute(&aa1)
不编译,应该是
void compute(a&a1)
,并且
返回*a
应该返回一个引用,因此
返回一个

c::a c::function_name()
=>
a c::function_name()
a
未继承
c
命名空间Magically请不要垃圾邮件发送不相关的标记。这不是C。这里有4个不同的文件这一事实与问题无关。您也没有显示编译时收到的实际错误消息。请花时间阅读a是什么以及如何制作a-->'返回一个u389;`函数“compute(a_)”抛出一个错误,表示未在作用域中声明。
void compute(&a a1)
未编译:
void compute(a&a1)
非常感谢
#include<b.h>
c::execute()
{
  a aa_ = function_name();
}
#include<b.h>
c::a c::function_name()
{
   compute(a_);
   return *a_;
}
class c{
private: 
  struct a {
a c::function_name()