调试虚拟函数 < >我用QT开发C++代码。我在我的固有类中定义我的虚函数。但是当我想要调试时,调试器不会进入我的函数内部。我是说当我站在这条线上时: myClassInstance->Foo(SujectNum,Subjects);
我按F11键进入调试虚拟函数 < >我用QT开发C++代码。我在我的固有类中定义我的虚函数。但是当我想要调试时,调试器不会进入我的函数内部。我是说当我站在这条线上时: myClassInstance->Foo(SujectNum,Subjects);,c++,qt,C++,Qt,我按F11键进入Foo函数,它不会进入函数内部,尽管我将断点放在函数内部。 如何调试此函数?很可能您没有重写正确的方法。确保您的头在每个被重写方法的声明之后添加Q_DECL\u OVERRIDE关键字,然后使用C++11编译器进行编译。将CONFIG+=c++11添加到项目文件中 #if __cplusplus > 199711L #if QT_VERSION < QT_VERSION_CHECK(5,0,0) #define Q_DECL_OVERRIDE override #en
Foo
函数,它不会进入函数内部,尽管我将断点放在函数内部。
如何调试此函数?很可能您没有重写正确的方法。确保您的头在每个被重写方法的声明之后添加
Q_DECL\u OVERRIDE
关键字,然后使用C++11编译器进行编译。将CONFIG+=c++11
添加到项目文件中
#if __cplusplus > 199711L
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
#define Q_DECL_OVERRIDE override
#endif
#else
#error You need a C++11 compiler to compile this code.
#endif
class Foo : public Bar {
public:
void foo(int index, const QList<Subject> & subjects) Q_DECL_OVERRIDE;
...
};
#if u cplusplus>199711L
#如果QT\u版本
您可以发布代码吗?请尝试将断点设置为文件,其中定义了真正调用的函数。比如(gdb)b MyClassImpl.cpp:123我应该把它放在qt:(gdb)b MyClassImpl.cpp?系统的什么地方?IDE名称?如果windows使用visual studio或gcc?32/64位?这是fedora with QT Creator当我将Q_DECL_OVERRIDE
添加到函数decelleration时,我得到了意外标记:Q_DECL_OVERRIDE
语法error@user667222那么,您必须使用Qt4。查看编辑。好吧,我覆盖了Foo
类中的虚拟函数,但当我在Foo
创建的Foo
实例的函数上按F2时,它指的是条
类的Foo函数,而不是Foo
class@user667222很可能你正面临这样的问题。在问题中添加一个独立的示例。