我想在满足某些条件时创建一个A类实例。例如,在下面的代码中,在函数B :: fun()中,如果x == true,我想创建一个A类对象。但是如果我定义类型1中所示的方法,则编译器会声明“a”未声明。 我们可以通过定义类型2中所示的方法来避免错误。但是在这种情况下,我们将最终创建一个不使用的A实例。
请建议处理这种情况的任何好方法
class A {};
Type 1:
B::fun() {
if (x == true)
A a;
}
Type 2 :
B::fun() {
A a;
}
答案 0 :(得分:1)
如果A
仅在x
为true
时使用,则在相同的if
块中使用它。
void foo()
{
if (x == true) {
A a;
// use a now
}
}
如果由于某种原因无法做到这一点,那么你必须要么:
if
之外,如第二个示例所示,并且可能未使用它;或答案 1 :(得分:0)
对象a
只能在if
块内访问。
要在外面使用它,你可以采用第二种方法。