我有這樣的代碼:無法訪問向量類成員
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