类中的结构不是一种类型
struct in class is not a type
我需要一些关于设计和返回结构的帮助。我已经做了类似类型的结构,但收到一个错误说:
"类 c 中的 a 不是一种类型">
我该如何解决这个问题?
A.H
#include<stdio.h>
struct a {
int i;
vector<abc> j;
};
B.H
#include <a.h>
class c{
private:
a a_;
virtual bool execute();
void compute(&a a1)
public:
a function_name();
}
b.cc
#include<b.h>
c::execute()
{
a aa_ = function_name();
}
d.cc
#include<b.h>
c::a c::function_name()
{
compute(a_);
return *a_;
}
b.h
包含a.h
,a
是全局范围内的类型,a
没有神奇地继承c
命名空间
如果您在声明中声明了a
c
则需要c::a
:
class c{
private:
struct a {
所以解决方法是从c::a
中删除命名空间:
a c::function_name()
注意:此处使用的命名约定(如果有的话(无助于理解这些示例。
另外:void compute(&a a1)
不编译,应该void compute(a &a1)
,return *a_;
应该返回一个引用,所以return a_;
相关文章:
- 在运行时检查继承是否只有一种类型和 void*
- 另一种类型的智能ptr,比如具有弱refs的unique_ptr
- void* 数组将元素转换为另一种类型
- 将一种类型的比特重新解释为不同类型的比特的技术
- 为什么需要类型名称,即使似乎足以推断名称应该是一种类型?
- 在 c++ 中将一种结构类型分配给另一种类型
- 将空基类优化对象强制转换为另一种类型是否会破坏严格的别名?
- 我怎样才能让编译器推导出一种类型的 nullptr
- 一种类型的多个 cv 分解
- 如何将对象定义为一种类型,然后再将其声明为子类型
- 类中的结构不是一种类型
- 一种类型特征,标识哪个类提供通过重载解析选择的函数
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- constexpr检查一种类型
- 何时与另一种类型兼容
- 依赖名称不是一种类型,带有 SFINAE 的模板
- 自动将一种 c++ 类型转换为另一种
- C 模板可以匹配(仅)一种类型的列表或另一种类型的列表
- 是否可以将一种类型的数组转换为大小不同的另一种类型的数组?
- 在比较中使用已强制转换为另一种类型的函数指针是否定义良好?