我无法使用文件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