【发布时间】:2012-03-30 16:58:27
【问题描述】:
我需要创建一个具有如下公共接口的 Expr 类:
class Expr{
//...
public:
Expr(const char*);
int eval(); //Evaluates the expression and gives the result
void print();
};
在设计中,如果用户输入了一个无效的字符串来构造一个像“123++233+23/45”这样的Expr对象,那么最初构造Object并在调用eval()时通知错误是否正确?那个物体。
或者应该在此时检查错误本身并抛出异常,尽管这会导致运行时严重增加。并且用户可以在假设 Object 已创建并且仅在运行时发现错误的情况下进一步编写代码..
此类问题在创建类时总是会出现,是否有一种相当标准的方法来处理用户所犯的此类错误????
【问题讨论】:
-
直接在构造函数中计算表达式?
-
见here。另外,考虑标记你的构造函数
explicit。 -
或者更确切地说,使用其他一些高效的代码作为静态函数仅用于该目的,我的意思是任何一种方式......
标签: c++ class error-handling