C++ 数组错误 C3646:'jarArray':未知替代说明符

c++ array error C3646: 'jarArray' : unknown override specifier

本文关键字:说明符 未知 jarArray 错误 C++ 数组 C3646      更新时间:2023-10-16

另一个简单的.....

我有一个对象(jar)的数组,它是我在头文件(框)中声明的。

#include "Jar.h"
using namespace std;

class box
{
public:
box();
void searchForPart(string part);

 private:

int numberOfJars;
Jar jarArray[50];
int count;
};

在实际的盒构造函数@ box.cpp中,我通过以下方式填充jar数组:

#include "Jar.h"
#include "Box.h"

.....
jarArray[] = {Jar("bolts"), Jar("Nuts"), Jar("screws"), Jar("drywallnails"), Jar("nails")};

我想我在声明中遗漏了一些东西。错误C3646: 'jarArray':未知的覆盖说明符。现在有什么建议吗??

如果您使用的是c++ 11,我相信您可以这样做:

Bar::Bar()
: jarArray({Jar("bolts"), Jar("Nuts"), Jar("screws"), Jar("drywallnails"), Jar("nails")})
{
    //...
}

然而,在我们心爱的c++ 03中,它归结为

Bar::Bar()
{
    jarArray[0] = Jar("bolts");
    jarArray[1] = Jar("nuts");
    jarArray[2] = Jar("screws");
    jarArray[3] = Jar("drywallnails");
    jarArray[4] = Jar("nails");
    //...
}

如果使用c++ 11:

Bar::Bar() : jarArray{Jar("bolts"), ... , Jar("screws")}{}

如果不使用for循环,或等价的。

但是您的问题可能是Jar在Box.cpp中不可见。

jarArray是Box的成员。所以你可以初始化它开箱即用对吧?:)