如何在类中定义结构?

时间:2011-03-22 16:14:03

标签: c++ class data-structures structure


我有一节课:

class systemcall
{
    typedef struct
    {
        int pid;
        int fptrCntr;
        OpenFile openfileptrs[10];

    }processTable[100];

    public:
         //other stuff...
}

我有一个会员功能

/* this function initializes the process table. */
void systemcall::initpTable()
{
    int i = 0;

    for ( i=0; i<100; i++ ) {
     processTable[i].fptrCntr = 0;
    }

}  

processTable[i].fptrCntr = 0;行会出错:

systemcall.cc:86: error: expected unqualified-id before '[' token  
我几乎拔掉了所有头发!任何想法为什么会这样?我甚至把结构放在systemcall.cc文件中,但没有用。

谢谢。

2 个答案:

答案 0 :(得分:4)

typedef声明之前,您不希望processTable,因为您声明了一个对象,而不是一个类型。在将processTable定义为类型之后,您继续将其用作成员对象,这会使编译器感到困惑。

答案 1 :(得分:0)

试试这个:

class systemcall
{
    struct ProcessTable
    {
        int pid;
        int fptrCntr;
        OpenFile openfileptrs[10];

    };

    ProcessTable processTable[100];

    public:
         //other stuff...
};