我正在尝试为我的作业定义一个Class类型的数组。 classB和classC在另一个classA中定义,我必须定义一个Array 在classB类型的classB中定义。下面是我写的代码。
//main.cpp
...
//cop.h
class cop
{
public:
....
class Person
{
private:
static char name;
static char age;
static char gender;
};
class Station
{
public:
Station();
~Station();
private:
Person personArray[20];
protected:
void visit();
};
//cop.cpp
char cop::Person::name;
char cop::Person::age;
char cop::Person::gender;
cop::Station::Station(){}
cop::Station::~Station(){}
Person cop::Station::personArray[20];
我得到了ERROR;
'人'未命名类型
答案 0 :(得分:1)
首先(我稍后会指出)Person
的字段不应该是static
。之后,删除以下行:
char cop::Person::name;
char cop::Person::age;
char cop::Person::gender;
Person cop::Station::personArray[20];
正确设计您的代码应如下所示:
// Person.h
class Person
{
public:
char name;
char age;
char gender;
};
// Station.h
class Station
{
public:
Station();
~Station();
private:
Person personArray[20];
protected:
void visit();
};
// Station.cpp
Station::Station()
{
for (int i = 0; i < 20; i++)
{
personArray[i].age = ...;
}
}
顺便说一句:声明Person
类static
的所有字段肯定会确保阵列中的所有人都具有相同的名称,年龄和性别......