我無法使用文件I/O爲我正在處理的遊戲創建類的實例。這可能是一個愚蠢的問題,但我無法理解爲什麼編譯器似乎成功地從存儲在文本文件中的數據創建對象,然後我無法訪問它們。 (我拿出了.display()函數調用來測試這個,並添加了一個簡單的「創建對象」對象;將其添加到構造函數中以檢查是否已創建了一些東西)。如何訪問從文件輸出創建的obect實例?
但是,試圖訪問個人對象給我錯誤:嘗試訪問對象成員函數時,「標識符」未定義。我可能正在做一些完全錯誤的事情,我希望推動正確的方向,我試圖改變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
Atributes.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;
};
對不起,我應該可能進一步瞭解我的詳細信息...我已經添加了該類的頭文件,我只是試圖測試是否可以創建更乾淨的代碼通過使用數據文件創建對象,如果這是有道理的?那可能嗎? – Iskardes
你的意思是,在程序運行之前創建對象? – taylorc93
基本上......是的,我想! – Iskardes