我有接受字符串的方法,并使用正则表达式方法来确定该字符串是否表示float,int或string。
返回结果float,int或string的最佳模式是什么?
所以我的基本方法原型是:
void interpretString(const std::string &s);
获取返回的float,int或string的最佳方法是什么? 目前我扩展了我的方法如下:
enum dataType { None, String, Float, Int };
dataType interpretString(const std::string &s,
string &s,
float &f,
int &i);
其中数据在相应的s,f或i变量中返回。这似乎不能令人满意,因为我传递的数据永远不会被使用(例如,如果输入字符串是一个浮点数,字符串和整数返回值将被使用)
有更好的方法吗?
答案 0 :(得分:0)
这是使用函数对象的另一种方法:
struct Evaluation_Assignment
{
virtual void assign(const std::string& s) = 0;
virtual void assign(int i) = 0;
virtual void assign(double d) = 0;
};
void Interpret_String(const std::string string_to_process,
Evaluation_Assignment& processor)
{
if (interpretation_was_string)
{
processor.assign(s);
}
}