データ選択画面を作るクラスでファイルから読み込んだデータを構造体配列に格納しているのですがその構造体をデータ確認画面を作るクラスから参照する方法はどんな方法があるでしょうか、私の書いたやり方では「静的でないメンバー参照は特定のオブジェクトを基準とする相対参照である必要があります」と出てきてエラーになってしまいます。関係あると思われるコードを載せます、画面遷移は同サイトの「http://dixq.net/g/sp_06.html」を引用しています。
DataSelect.h
class DataSelect :public BaseScene
{
private:
Datas SaveData[3]; //データを読み込む構造体
Datas *p; //構造体ポインタ
int DataCount; //読み込んだセーブデータの数をカウント
int SelectData; //選んだデータの番号
public:
int Send(Datas*);
};
DataSelect.cpp
#include "DataSelect.h"
#include "DxLib.h"
#include <stdio.h>
void DataSelect::Initialize(){
Sleep(250); //この画面が動き出すまでに250ms時間を置く
if ((fp = fopen("SaveData.dat", "rb")) == NULL) {
//セーブデータがない時ここ
}
DataCount = 0;
for (int i = 0; i < 3; i++) {
if (fread(&SaveData[i], sizeof(Datas), 1, fp) >= 1) {
DataCount++;
}
}
fclose(fp);
p = SaveData;
SelectData = 0;
}
void DataSelect::Update() {
//ここでクリックしてSelectDataに選択したデータの番号を入れてデータ確認画面に行きます
}
int DataSelect::Send(Datas *p) {
p = SaveData;
return SelectData;
}
DataCheck.h
//使用するデータの最終確認画面クラス
#include "DataSelect.h"
#include "Data.h"
class DataCheck :public BaseScene
{
private:
Datas *p; //確認するデータの構造体ポインタ
int DataNum; //確認するデータの番号
};
DataCheck.cpp