2012-05-12 31 views
3

是否有可能在“if-else”之外声明类变量并在“if-else”之内初始化它?C++在“if-else”之外声明类变量

是这样的:

myClass mc; 
if (bOOlVar){ 
    mc(10); 
} 
else{ 
    mc(10,20); 
} 

假设我有2个缺点为MyClass的(一个接收int和一个接收2个整数)

非常感谢

回答

6
auto mc = (boolVar? MyClass(10) : MyClass(10, 20)); 
+0

实际上从来没有想过这个。我喜欢。 – chris

+0

就像一个笔记,只适用于可移动的类型。你必须做一些hijinks来使它在原地工作。 – Puppy

+0

这是狡猾的外观代码,几乎看起来像python – EdChum

2

那不可能。可能的收盘价是这样的:

myClass mc(10); 
if (!bOOlVar) 
{ 
    mc = myClass(10,20); //if assignment is allowed 
}