C++ 类中的结构不是类型
我需要一些设计和返回结构的帮助。我做了一个类似的结构,我得到一个错误,说: “c类中的a不是类型” 我怎样才能解决这个问题 a、 hC++ 类中的结构不是类型,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
#包括
结构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
是全局范围内的类型,aa
没有神奇地继承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()