使用一个类中的结构构造另一个类
use the struct from a class to construct another class
我有两个类,第一个包含结构,这就是在 A.h 中的内容
class A
{
public:
A();
struct structname
{double a;....};
};
我想用这个结构作为 B 构造函数的参数
#include "A.h"
B::B(A::structname data)
{
}
但我收到错误消息:"类 A"中的"结构名称"未命名类型
问题出在哪里?
详细信息:两个类在不同的.cpp文件中。在 A.cpp 和 B.cpp 中:我只是 #include A.h 和 B.h在 B.h :
class A;
class B
{
public:
B(A::structname data);
}
实际结构:
struct structname
{
std::vector<double> a={0,0,0};
std::vector<double> B={0,0,0};
std::vector<double> c={0,0,0};
std::vector<double> d={0,0,0};
}
class A
{
public:
A();
struct structname
{
std::vector<double> a={0,0,0};
std::vector<double> B={0,0,0};
std::vector<double> c={0,0,0};
std::vector<double> d={0,0,0};
};
};
class B
{
public:
B(A::structname data);
};
只需格式化您的代码。你会看到你所有的错误。
显然,您正在 B.h 中向前声明 A(这就是我从您的片段中读到的)。如果要向前声明 A,编译器只知道某处有一个名为 A 的类型属于类类型。它不知道那里A::structname
。
做你的前向声明相反的方式,或者干脆避免嵌套类型。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何将数据从一个结构链接到另一个结构
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- std::transform 将一个结构数组复制到另一个结构数组
- C++将结构复制到另一个程序的资源
- 结构新手,我对如何从 void 函数中返回值并将其放入另一个函数感到困惑
- 可以访问一个类中的播放器结构,但不能访问另一个类中的播放器结构
- 如何在另一个结构中初始化结构数组?
- 在另一个结构中声明内部结构会导致错误:结构使用无效
- 通过 C++ 中的另一个结构成员访问结构
- 难以从另一个结构中的函数返回结构
- 有没有办法将一个对象注入到另一个对象的结构中?
- 如何制作一个结构程序,在其中可以存储无限量的数据,以便每次您想要时都可以将另一个产品添加到列表中?
- 将一个结构的值复制到另一个结构
- 结构C++可以用 0 初始化,但不能用另一个 int 初始化
- 如何将矢量结构从一个标头文件传递到另一个标头文件中的类
- 是否可以定义一个在外部"C"块中继承另一个结构的结构?