有一个带有几个整数和指针的类,
class A {
int a;
int b;
char* s;
public:
...
class ConstructA {
A &a;
public:
ConstructA (A& ta) : a(ta) {}
...
};
};
Run Code Online (Sandbox Code Playgroud)
如上所示,ConstructA负责构造对象A.我想编写一个方法来查看ConstructA是否成功构造了对象a.你会怎么做?
由于构造函数无法在C++中失败,因此对象可以是:
如果构造函数抛出异常,则在捕获异常时该对象实际上不存在.
您可能希望实现一个额外的方法,例如isOK()返回对象的内部状态是否表示有用的方法.例如,如果您有一个表示文件的对象,那么您可以isOK()用来指示该文件可以成功打开.但是,就C++而言,无论文件是否可以打开,文件对象都将完全构造.
话虽如此,我并不完全确定这个ConstructA类在你的例子中的作用.