Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c+中的公共结构+;班 我试图在C++类中定义一个公共结构,而不能理解如何编译它。在我的标题中,我有以下内容: class AtomUtility { public: struct BoundingBox; void doWork(struct AtomUtility::BoundingBox bounds); };_C++_Struct_Inner Classes - Fatal编程技术网

c+中的公共结构+;班 我试图在C++类中定义一个公共结构,而不能理解如何编译它。在我的标题中,我有以下内容: class AtomUtility { public: struct BoundingBox; void doWork(struct AtomUtility::BoundingBox bounds); };

c+中的公共结构+;班 我试图在C++类中定义一个公共结构,而不能理解如何编译它。在我的标题中,我有以下内容: class AtomUtility { public: struct BoundingBox; void doWork(struct AtomUtility::BoundingBox bounds); };,c++,struct,inner-classes,C++,Struct,Inner Classes,来源: #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

来源:

#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...
}

当我试图编译它时,我得到一个错误:“类“Atomultility”没有名为“BoundingBox”的标记成员。

在定义了
Atomultility::BoundingBox
之后,您错过了分号,您的编译器变得混乱,并且给出了一个糟糕的诊断

您还试图将
atomultility::BoundingBox*
传递给需要
atomultility::BoundingBox

如果您的编译器的诊断结果不佳,则在其他编译器上尝试您的代码通常会很有用。有几种编译器可以联机使用,例如,或使用pastebin进行编译,例如

引用:

只能声明指向后一个类(…)的指针或引用。不能有后一个类的对象。

为了修复这个问题,你需要在类之前声明结构,使用它作为一个字段。

至少有一个;在结构定义的末尾缺少。C++中不需要说“代码>结构”/代码>。它不是C.@ KerrekSB,他在这里使用的所有上下文中都是这样。@ JAMESKANZE,不是在声明<代码> DoOrk < /C> 1时的参数。是否有一个特殊的原因,你使用这种语法,而不是声明之前的结构,然后只是使用它作为成员?2。@ KeRek SB,我工作的地方,我们使用<代码> Stutt在C++中,表示一个类,所有的成员都是公共的,没有方法,比如C结构。抱歉,这是两个从我的终端复制的TyPOS。还有一个在定义上的输入错误。修复了这些错误后,代码就可以了,如果你的编译器拒绝了它,那么它就是一个编译器错误“,您是指数据成员吗?因为它没有用作数据成员。所以编译器稍后会定义BoundingBox,即使它是源文件中的第一件事?@JonathanWakely:我不确定命名约定,我的意思是它或它的引用/指针将是对象的一部分。:我的错,我现在看到了。但它没有在对象中使用。它在定义之后才被使用,这是正常的。