c ++数组错误C3646:'jarArray':未知的重写说明符

时间:2011-12-03 04:05:34

标签: c++ arrays class header-files

另一个轻松的人......

我有一个对象(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':未知的覆盖说明符。现在有什么建议我错过了什么???

2 个答案:

答案 0 :(得分:1)

如果您正在使用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");
    //...
}

答案 1 :(得分:0)

如果你在C ++ 11下:

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

如果不使用for循环或等效。

但你的问题可能是在Box.cpp上看不到Jar。

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