【发布时间】:2012-08-13 19:11:50
【问题描述】:
我试图在 C++ 类中定义一个公共结构,但不知道如何编译。在我的标题中,我有以下内容:
class AtomUtility
{
public:
struct BoundingBox;
void doWork(struct AtomUtility::BoundingBox bounds);
};
在源代码中:
#include"AtomUtility.h"
struct AtomUtility::BoundingBox
{
double xMin, xMax;
};
int main()
{
AtomUtility::BoundingBox *myBox = new AtomUtility::BoundingBox;
myBox->xMin = 0;
myBox->xMax = 10;
AtomUtility *myUtility = new AtomUtility;
myUtility->doWork(*myBox);
delete myUtility;
}
void AtomUtility::doWork(struct AtomUtilty::BoundingBox bounds)
{
//do things...
}
当我尝试编译它时,我收到一个错误:“类“AtomUtility”没有名为“BoundingBox”的标记成员。
【问题讨论】:
-
至少有一个 ;在结构定义的末尾缺少
-
你不需要在 C++ 中说
struct。这不是 C。 -
@KerrekSB 他在这里使用它的所有上下文中都这样做。
-
@JamesKanze,不是在声明
doWork的参数时 -
1.您使用这种语法而不是在之前声明结构然后仅将其用作成员是否有特殊原因? 2. @Kerrek SB,在我工作的地方,我们在 C++ 中使用
struct来表示一个类,它的所有成员都是公共的并且没有方法,例如 C 结构。
标签: c++ struct inner-classes