En C , obtenir la fonctionnalité équivalente de l'opérateur instanceof de Java implique une technique connue sous le nom d'identification de type d'exécution (RTTI) utilisant Dynamic_cast. Cela vous permet de vérifier si un objet donné, stocké sous forme de pointeur ou de référence à sa classe de base, pointe vers une instance de classe dérivée spécifique.
Pour vérifier si un objet pointé par un pointeur ou une référence à la classe de base class (old) est d'un type de classe dérivé spécifique (NewType), vous pouvez utiliser la syntaxe suivante :
if(NewType* v = dynamic_cast<NewType*>(old)) { // old was safely casted to NewType v->doSomething(); // Access specific methods of NewType }
Il est important de noter que Dynamic_cast nécessite la prise en charge du compilateur pour RTTI, qui doit être activé lors de la compilation.
Cependant, il est crucial de réfléchir attentivement à la nécessité de Dynamic_cast avant de l'utiliser. En général, cela indique un problème de conception potentiel. Il faut s'efforcer d'adopter des approches plus robustes et plus sûres, telles que :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!