gpt4 book ai didi

c++ - 结构的前向声明

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:22 24 4
gpt4 key购买 nike

我有一个头文件 a.h,我在里面声明了一个结构。该结构的名称是 file。在 file 中,我有 3 个成员:a、b、c。在 a.cpp 中,我实现了该结构并为该结构变量分配了一些值。

现在我有另一个文件 b.h.在其中我有一个结构 file 的前向声明。到目前为止,如果我编译它不会显示错误,但是当我要通过该 b.cpp 类访问该结构中存在的变量时,它会给出类似“未定义结构”的错误。

我做错了什么?

最佳答案

What is the root cause of error?

当您转发声明一个类型时,编译器将其视为不完整类型

前向声明告诉编译器该类型存在,仅与特定类型有关。因此,您不能对其执行任何操作(如创建对象或取消引用该类型的指针)需要编译器知道其内存布局的类型。

Solution:

如果需要引用结构成员,则不能前向声明,您需要在源文件中包含头文件。这将确保编译器知道该类型的内存布局。您将必须相应地设计您的项目。

关于c++ - 结构的前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com