2012-05-12 52 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 
}