定义要在包含的头文件中访问的结构体的正确方法
Correct way to define a struct to be accessed in included header files
我有一些类似的东西:
header1.h
#include "header2.h"
struct MyStruct
{
int aVariable;
};
class AClass
{
AnotherClass m_anotherClass;
}
header2.h
class AnotherClass
{
AnotherClass(MyStruct & myStruct)
: m_myStruct(myStruct)
{
}
MyStruct & m_myStruct;
};
我想知道当我在header1.h中定义它时,我如何才能访问header2.h中的MyStruct。我知道我可以把结构体的定义移到header2。h中,但这并没有真正意义,因为它的本意是。
我想这样做的唯一原因是因为我希望能够获得存储在header .cpp中更新的变量中的数据。
你需要在header2.h中添加一个forward声明。
// Forward declare MyStruct
struct MyStruct;
class AnotherClass
{
AnotherClass(MyStruct & myStruct)
: m_myStruct(myStruct)
{
}
MyStruct & m_myStruct;
};
您可以将结构定义移动到header2.h中,假设您将header1.h包含到header1.cpp中。然后,由于header1.cpp包含了header1.h,而header1.h又包含了header2.h,因此header1.cpp还可以访问header2.h中定义的结构体和类。
可以对MyStruct使用前向声明。由于使用的是引用,因此不需要包含header1.h。如果他们使用结构体,你将无法在这个头文件中定义内联函数,因为你需要它的定义。
相关文章:
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- 访问不同类的私有结构体成员
- 从结构体访问数据时,操作符重载到哪里去了?
- 定义要在包含的头文件中访问的结构体的正确方法
- 访问结构体中定义的枚举的值
- 将结构体传递给线程,如何访问结构体中的多个数据
- 如何访问结构体中的值
- 访问结构体中定义的枚举值
- 在模板类中使用结构体作为参数并访问它们的元素
- 使用局部变量或多次访问结构体值(c++)
- 从派生类访问基类中的结构体
- 如何实现两个可以相互访问的结构体
- 试图使用指向结构体向量的指针访问结构体类型时出错
- android:无法访问结构体静态数据成员
- 在类LinkedList节点中访问结构体的成员
- 如何从另一个c++类访问一个结构体
- 使用成员变量的偏移量访问结构体的私有成员
- 可以访问传递给模板的结构体吗?
- 在c++中使用迭代器访问结构体