J'ai fait quelques recherches et il semble que NetBeans n'ait pas cette fonctionnalité intégrée.
Ne vous inquiétez pas! Vous pouvez obtenir le même effet en configurant un point de surveillance personnalisé pour la variable dont vous souhaitez connaître le type.
Le code que je vais débogage:
#include <typeinfo>
#include <iostream>
using namespace std;
class Command {
public:
virtual void bla() {
cout << "Base";
}
};
class RunCommand : public Command {
public:
void bla() {
cout << "Child";
}
};
int main(int argc, char** argv) {
Command * base_command = new Command();
Command * run_command = new RunCommand();
cout << "Breakpoint";
delete base_command;
delete run_command;
return 0;
}
Notez que j'ai inclus <typeinfo>
. Je vais arrêter de regarder les variables à l'impression de la ligne "Breakpoint". Voici comment le point de montre ressemble:
L'expression de la montre sont:
typeid(*base_command).__name
typeid(*run_command).__name
Comment ça marche:
J'utilise le typeid operator. Je lui passe l'objet que je veux voir le type de. Notez que dans notre cas, nous devons déréférencer le pointeur pour accéder à l'objet. L'opérateur renvoie une sorte d'objetavec le membre __name
. Ce champ semble contenir le type d'exécution de l'objet qui est passé à typeid
.
Je ne sais pas à quel point c'est portable. J'ai fait ce qui précède en utilisant NetBeans 8.0.2 et gcc 4.8.2.