定义类型Class的数组

时间:2012-03-19 14:31:52

标签: c++ arrays class header

我正在尝试为我的作业定义一个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;

  

'人'未命名类型

1 个答案:

答案 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 = ...;
        }
    }

顺便说一句:声明Personstatic的所有字段肯定会确保阵列中的所有人都具有相同的名称,年龄和性别......