Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试虚拟函数 < >我用QT开发C++代码。我在我的固有类中定义我的虚函数。但是当我想要调试时,调试器不会进入我的函数内部。我是说当我站在这条线上时: myClassInstance->Foo(SujectNum,Subjects);_C++_Qt - Fatal编程技术网

调试虚拟函数 < >我用QT开发C++代码。我在我的固有类中定义我的虚函数。但是当我想要调试时,调试器不会进入我的函数内部。我是说当我站在这条线上时: myClassInstance->Foo(SujectNum,Subjects);

调试虚拟函数 < >我用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

我按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
#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很可能你正面临这样的问题。在问题中添加一个独立的示例。