另一个轻松的人......
我有一个对象(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':未知的覆盖说明符。现在有什么建议我错过了什么???
答案 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的成员。所以你可以直接初始化开箱即用吧? :)