C++ 在C+;的Netbeans调试器中查看动态类型+;
我有一个以C++ 在C+;的Netbeans调试器中查看动态类型+;,c++,debugging,netbeans-8,C++,Debugging,Netbeans 8,我有一个以 class Command { ... } 然后是子类 class RunCommand : public Command { ... } 在Netbeans调试器中,当查看Command*类型的变量时,我希望查看变量的实际类型 Command * command [RunCommand] 然后可以展开字段以查看状态。这可能吗?我做了一些研究,发现NetBeans似乎没有这种内置功能 别担心!您可以通过为要查找变量类型的变量设置自定义观察点来实现相同的效果 我将调试的代码: #
class Command { ... }
然后是子类
class RunCommand : public Command { ... }
在Netbeans调试器中,当查看Command*
类型的变量时,我希望查看变量的实际类型
Command * command [RunCommand]
然后可以展开字段以查看状态。这可能吗?我做了一些研究,发现NetBeans似乎没有这种内置功能 别担心!您可以通过为要查找变量类型的变量设置自定义观察点来实现相同的效果 我将调试的代码:
#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;
}
它的工作原理:
我在用电脑。我正在向它传递我想要查看的对象类型。请注意,在我们的例子中,我们必须取消对指针的引用才能到达对象。运算符返回某种类型的typeid
对象,其成员名为\u
。该字段似乎包含传递给typeid
的对象的运行时类型
我不知道这有多便携。我已经使用NetBeans 8.0.2和gcc 4.8.2完成了上述工作
typeid(*base_command).__name
typeid(*run_command).__name