ファイル I/O を使用して、作業中のゲームのクラスのインスタンスを作成するのに問題があります。ばかげた質問かもしれませんが、コンパイラがテキスト ファイルに格納されたデータからオブジェクトを正常に作成したように見えて、それらにアクセスできない理由がわかりません。(これをテストするために .display() 関数呼び出しを取り出し、単純な cout << "Object created"; をコンストラクターに追加して、何かが作成されたことを確認しました。)
しかし、個々のオブジェクトにアクセスしようとするコードは、オブジェクトのメンバー関数にアクセスしようとすると、エラー: "識別子" が定義されていません。私はおそらく完全に間違ったことをしており、正しい方向にプッシュしていただければ幸いです。オブジェクトを作成するための while ループの構文を変更しようとしましたが、まだクラックしていません。前もって感謝します!以下のコード...
main.cpp
#include <iostream>
#include <string>
#include <fstream>
#include "Attributes.h"
using std::cout;
using std::endl;
using std::cin;
using std::ofstream;
using std::ifstream;
using std::getline;
using std::cerr;
int main() {
std::string line;
ifstream attdata;
attdata.open("data.txt");
if (attdata.is_open())
{
while (attdata.good())
{
getline (attdata, line);
Attributes * line = new Attributes;
}
attdata.close();
}
else cerr << "Unable to open file.";
health.display();
fatigue.display();
attack.display();
skill.display();
defence.display();
skilldef.display();
speed.display();
luck.display();
};
data.txt
health
fatigue
attack
skill
defence
skilldef
speed
luck
属性.h
#pragma once
#include <string>
class Attributes
{
public:
Attributes(void);
Attributes(std::string name, std::string shortName, std::string desc, int min, int max);
~Attributes(void);
void display();
private:
std::string m_nameLong;
std::string m_nameShort;
std::string m_desc;
int m_minValue;
int m_maxValue;
};