2012-05-12 2 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

Как примечание, работает только для подвижных типов. Вы должны сделать некоторые хиджонки, чтобы заставить его работать на месте. – Puppy

+0

Это коварный код, который почти выглядит как python – EdChum

2

Это это невозможно. Закрытие, которое возможно, таково:

myClass mc(10); 
if (!bOOlVar) 
{ 
    mc = myClass(10,20); //if assignment is allowed 
} 
Смежные вопросы