【发布时间】:2012-12-21 05:36:45
【问题描述】:
我有这个代码:
WItem.h
#include <vector>
#include <string>
typedef struct iteminfo {
int rowid;
char* item;
int type;
int extra;
int objectid;
} item;
class CItem {
public:
void push(int rowid, char* item, int type, int extra, int objectid);
std::vector<iteminfo> data;
};
WItem.cpp
#include "witem.h"
void CItem::push(int rowid, char* item, int type, int extra, int objectid) {
iteminfo* temp = new iteminfo;
temp->rowid = rowid;
temp->item = item;
temp->type = type;
temp->extra = extra;
temp->objectid = objectid;
this.data.push_back(temp);
}
我得到了这些错误:
- `data' 不是类型
- 在“.”之前请求非聚合类型的成员令牌
我不知道出了什么问题。
【问题讨论】:
-
不要在 C++ 中
typedef类。 -
也许您需要将代码缩进一点...
-
如果结构也将在 C 中使用,那么 typedef 就可以了,就像使用 char* 一样,尽管您必须小心“3 规则”(您不能在struct 如果它也将在 C 中使用)。 (假设这不是真正的代码,它真的在一个没有 C++ 的单独头文件中)。