84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
小白初学c++,c++类设计时,如果构造函数发生错误,应该如何处理比较好?比如,设计一个矩形类Class Rectangle, 其构造函数为 Rectangle(int l, int w);显然长和宽不能为负数,但如果使用者传递给构造函数负数,应该如何设计类,使其能很好的处理这种错误?方案:输出错误,终结程序?;构造函数中抛出异常? 各位大神们在实际中应该如何处理这种问题?
光阴似箭催人老,日月如移越少年。
构造函数抛异常并没有什么问题,只有析构函数才不能抛出异常或者直接将类型定义为unsigned int类型,或者将l,w操作放在新的init函数内
要么就设成某个默认值,要么就抛异常。
可以抛出异常,不过要小心的处理,如果你构造函数中分配了内存或者其他的东西,对象没有构造完毕是不会调用析构函数的,如果你的构造函数很简单,那是没有问题的还有c++标准说析构函数不要抛出异常。。或者加一个init函数,当然要用文档说清楚,如果不调用init后果是不可预料的。。
c++标准说析构函数不要抛出异常
init
构造函数抛异常并没有什么问题,只有析构函数才不能抛出异常
或者直接将类型定义为unsigned int类型,或者将l,w操作放在新的init函数内
要么就设成某个默认值,要么就抛异常。
可以抛出异常,不过要小心的处理,如果你构造函数中分配了内存或者其他的东西,对象没有构造完毕是不会调用析构函数的,如果你的构造函数很简单,那是没有问题的
还有
c++标准说析构函数不要抛出异常
。。或者加一个
init
函数,当然要用文档说清楚,如果不调用init
后果是不可预料的。。