0

ファイル 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;

};
4

3 に答える 3