对于c ++中的小项目,我需要从文本文件中初始化一些变量,并使这些变量可用于代码中的多个函数。我现在这样做的方法是创建一个类,该类读取并返回这些值,并创建该类的单个全局实例,然后项目中的所有函数都可以访问它。然而,对我来说这似乎不是一个非常优雅的解决方案,我想知道这里最好的做法是什么。解析变量作为参数对我来说并不是一个选项,因为我通常在不同的函数中需要很多这些变量。
感谢您的任何建议!
MWE:
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <sstream>
using namespace std;
class indata {
int age;
double weight;
double length;
public:
indata ();
int getAge(void)
{
return age;
}
double getWeight(void)
{
return weight;
}
double getLength(void)
{
return length;
}
};
indata::indata () {
ifstream inputfile;
inputfile.open ("input.dat");
inputfile>>age;
inputfile>>weight;
inputfile>>length;
inputfile.close();
};
// make class instance global
indata in;
double Length2inch()
{
const double cm2inch = 1./2.54;
double Length = in.getLength();
return Length*cm2inch;
};
int main () {
cout << "Age : " << in.getAge() << endl;
cout << "Weight : " << in.getWeight() << endl;
cout << "Length : " << in.getLength() << endl;
cout << endl;
cout << "Length in inches: " << Length2inch() << endl;
return 0;
}
input.dat:
32
75
175