C ++错误C2061 - typdef定义

时间:2013-12-17 09:22:51

标签: c++ typedef header-files

在我的c ++应用程序中,我有一个aaa.h文件,里面有这个定义:

typedef struct 
{
   int a;
   int b;
} CCC;

typedef struct _DDD
{
   unsigned int e;
   CCC cccArray[100];
} DDD;

在我的aaa.cpp中我写道:

#include "aaa.h"

DDD * dddPtr

但后来我收到了这个错误: 错误c2061:语法错误:标识符'DDD'

你可以帮忙解决这个问题吗?

感谢

2 个答案:

答案 0 :(得分:1)

对于C ++,您不需要typedef'ed struct - 只需执行此操作:

struct CCC
{
   int a;
   int b;
};

struct DDD
{
   unsigned int e;
   CCC cccArray[100];
};

和此:

#include "aaa.h"

DDD * dddPtr = NULL;    // or = new DDD;

答案 1 :(得分:1)

首先:您应该使用分号;终止声明。

第二:在您的情况下,C ++中不需要typedef,只需定义class es或struct ures:

struct CCC
{
   int a;
   int b;
};

struct DDD
{
   unsigned int e;
   CCC cccArray[100];
};

int main()
{
    DDD * dddPtr;
}

编辑:此外,您应该通过为CCCDDD提供合适的构造函数来确保每个成员都已正确初始化。