我在使用文件 I/O 为我正在开发的游戏创建类的实例时遇到问题。这很可能是一个愚蠢的问题,但我无法理解为什么编译器似乎成功地从存储在文本文件中的数据创建了对象,然后我无法访问它们。(我取出 .display() 函数调用来测试它,并添加了一个简单的 cout << "Object created"; 到构造函数中以检查是否已创建某些内容。)
但是尝试访问单个对象的代码给了我错误:尝试访问对象成员函数时未定义“标识符” 。我可能做错了什么,我希望能朝着正确的方向前进,我已经尝试更改 while 循环中的语法来创建对象,但我还没有破解它。先感谢您!下面的代码...
主文件
#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();
};
数据.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;
};