这是一个好奇的.我有一个A类.它有一个B类项目,我想在A的构造函数中使用初始化列表初始化,如下所示:
class A {
public:
A(const B& b): mB(b) { };
private:
B mB;
};
Run Code Online (Sandbox Code Playgroud)
有没有办法捕获mB的拷贝构造函数可能在使用初始化列表方法时抛出的异常?或者我是否必须在构造函数的大括号中初始化mB才能获得try/catch?
我有一个cheesesales.txtCSV文件,包含我最近的所有奶酪销售.我想创建一个CheeseSales可以执行以下操作的类:
CheeseSales sales("cheesesales.txt"); //has no default constructor
cout << sales.totalSales() << endl;
sales.outputPieChart("piechart.pdf");
Run Code Online (Sandbox Code Playgroud)
上面的代码假定不会发生任何故障.实际上,失败将会发生.在这种情况下,可能会发生两种故障:
我的问题很简单:您如何设计此代码来处理故障?
一个想法:bool从常规方法返回a 表示失败.不知道如何处理构造函数.
经验丰富的C++程序员如何做这些事情?