我需要一些设计和返回结构的帮助。我做过类似的结构,但出现错误:
我怎样才能解决这个问题?
啊
#include<stdio.h>
struct a {
int i;
vector<abc> j;
};
高度
#include <a.h>
class c{
private:
a a_;
virtual bool execute();
void compute(&a a1)
public:
a function_name();
}
抄送
#include<b.h>
c::execute()
{
a aa_ = function_name();
}
抄送
#include<b.h>
c::a c::function_name()
{
compute(a_);
return *a_;
}
最佳答案
b.h
包括a.h
,a
是全局范围内的类型,a
不能神奇地继承c
命名空间
如果在c::a
声明中声明了a
,则需要c
:
class c{
private:
struct a {
因此,解决方法是从
c::a
中删除 namespace :a c::function_name()
注意:此处使用的命名约定(如果有的话)无助于理解这些示例。
还:
void compute(&a a1)
不编译,应该是void compute(a &a1)
,并且return *a_;
应该返回引用,所以return a_;
关于c++ - 类中的struct不是类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49104823/