初心者です。
タイトルの通り、独自クラスを用いてvector配列を作成したいです。
ですがビルドをすると
error C2039: 'ID': 'std::vector<event,std::allocator<_Ty>>' のメンバーではありません。
等のエラーが出てしまいます。
ネットで調べても僕にはわかりませんでした。
どなたかわかる方がいましたらご教授宜しくお願いします。
#include "DxLib.h"
#include <iostream>
#include <string>
#include <fstream>
#include <wchar.h>
#include <sstream>
#include <vector>
using namespace std;
enum Enum_MapNumber {
MAP_1,
MAP_2,
MP_MAX
}mnh;//map number hennsuu
//向き
class direction {
public:
char up = 0;
char right = 0;
char down = 0;
char left = 0;
};
//イベントモードで使用するクラス
class event {
public:
int ID = -1;
char e_type = -1;
char e_entity = -1;
class direction d;
enum Enum_MapNumber mnh;
string str = "あいうえおかきくけ\nこさしすせそ";//会話文、コメント
char item = -1;
char other = -1;
int center_event = 0;
};
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更,初期化,裏画面設定
fstream io("test2.txt", ios::out);
if (!io) {
cout << "test2.txtが開けません";
return 1;
}
vector<event> e_map[2];
string::size_type strlen;
io.write((char*)&e_map[0].ID, sizeof(e_map[0].ID));
io.write((char*)&e_map[0].e_type, sizeof(e_map[0].e_type));
io.write((char*)&e_map[0].e_entity, sizeof(e_map[0].e_entity));
io.write((char*)&e_map[0].d, sizeof(e_map[0].d));
io.write((char*)&e_map[0].mnh, sizeof(enum Enum_MapNumber));
strlen = e_map[0].str.size();
io.write((const char*)&strlen, sizeof(strlen));//文字列のサイズを入力する
io.write(e_map[0].str.c_str(), strlen);
io.write((char*)&e_map[0].item, sizeof(e_map[0].item));
io.write((char*)&e_map[0].other, sizeof(e_map[0].other));
io.write((char*)&e_map[0].center_event, sizeof(e_map[0].center_event));
io.close();
io.open("test2.txt", ios::in);
if (!io) {
cout << "test2.txtが開けません";
return 1;
}
char cstr[10000];
io.read((char*)&e_map[0].ID, sizeof(e_map[0].ID));
io.read((char*)&e_map[0].e_type, sizeof(e_map[0].e_type));
io.read((char*)&e_map[0].e_entity, sizeof(e_map[0].e_entity));
io.read((char*)&e_map[0].d, sizeof(e_map[0].d));
io.read((char*)&e_map[0].mnh, sizeof(enum Enum_MapNumber));
io.read((char*)&strlen, sizeof(strlen));//文字列のサイズを入力する
io.read(&e_map[0].str[0], strlen);
io.read((char*)&e_map[0].item, sizeof(e_map[0].item));
io.read((char*)&e_map[0].other, sizeof(e_map[0].other));
io.read((char*)&e_map[0].center_event, sizeof(e_map[0].center_event));
io.close();
printfDx("%d\n",e_map[0].ID);
printfDx("%d\n", e_map[0].e_type);
printfDx("%d\n", e_map[0].e_entity);
printfDx("%d %d %d %d\n", e_map[0].d.up, e_map[0].d.right, e_map[0].d.down, e_map[0].d.left);
//io.read((char*)&e_map[0].mnh, sizeof(enum Enum_MapNumber));
printfDx("%s\n", e_map[0].str.c_str());
printfDx("%d\n", e_map[0].item);
printfDx("%d\n", e_map[0].other);
printfDx("%d\n", e_map[0].center_event);
ScreenFlip();
WaitKey();
return 0;
}