我有这样的代码:无法访问向量类成员
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'类++。 – chris
也许你需要缩进代码更多... – avakar
如果结构也将在C中使用,那么typedef是好的,就像使用char *尽管你必须小心“3规则”(它你也不能在结构中重载,如果它将用于C)。 (假设这不是真正的代码,它确实在没有C++的单独头文件中)。 – CashCow