假设包含正确的标头。在构造函数中初始化数组或向量
我有一个计算器的各种功能类。我针对不同的运营商类型(空值,Unirary,二进制,三元)有几个结构。我想初始化一个向量(或者最好是一个数组),其中的元素填充为我的计算器支持的元素。例如nul[]={{pi, "pi"}, {ans, "ans"}};
我的程序会从输入中取一个标记并搜索适当的操作符,返回该操作符的索引,然后调用正确的函数指针。我的问题是在构造函数中初始化一个数组或向量。如果有人能够向我展示两种方式,我会很感激。谢谢。以下是我的课程和未完成的构造函数。另外,如果你能想出一个更好的方式来写我的计算器,我很乐意听到它。
//operator class
class Functions{
public:
Functions();
double pi(double x=0);
double answer(double& x);
double abs(double& x);
double pow(double& x);
double add(double& x, double &y) const;
double subtract(double& x, double& y) const;
double multiply(double& x, double& y)const;
double divide(double& x, double& y) const;
double max(double& x, double& y, double& z) const;
double volume(double& x, double& y, double& z) const;
void doc();
bool weird(double &x) const;
unsigned findop0(const string & name);
unsigned findop1(const string & name);
unsigned findop2(const string & name);
unsigned findop3(const string & name);
private:
struct Nul{
double (*nulf)(double & x);
string name;
};
struct Uni{
bool (*unif)(double & result, double x);
string name;
};
struct Bin{
bool (*binf)(double & result, double x, double y);
string name;
};
struct Tern{
bool (*terf)(double & result, double x, double y, double z);
string name;
};
static const unsigned NUL_ELEMENTS = 2;
static const unsigned UNI_ELEMENTS = 2;
static const unsigned BIN_ELEMENTS = 4;
static const unsigned TRI_ELEMENTS = 2;
vector<Nul> nul;
vector<Uni> uni;
vector<Bin> bin;
vector<Tern> tri;
};
Functions::Functions(){
nul
}
琐碎与C++初始化列表...否则只是在构造函数中使用'push_back'。 – nneonneo
对于C++ 11而言,'vector'很容易。这比之前的情况要困难得多。 –