Déclaration de variable dans la condition d'un if
Bonjour.
Si j'ai les classes suivantes:
Code:
1 2 3 4
|
class Base { public: virtual ~Base(); [...] };
class One : public Base { [...] };
class Two : public Base { [...] }; |
Est-ce que le code suivant est du C++ standard? (c'est à dire, est-ce que déclarer une variable dans le if est valide?). Il semblerait que ça marche en VC6.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
void aFunction( const Base & object )
{
if (const One* pOne = dynamic_cast<const One*>(&Object))
{
pOne->doSomething();
}
else if (const Two* pTwo = dynamic_cast<const Two*>(&Object))
{
pTwo->doSomethingElse();
}
else
{
// No use of pOne or pTwo.
}
} |
C'est pour éviter de faire 2 fois le dynamic_cast, une fois dans la condition du if, l'autre dans le traitement.
Merci.