• 2582阅读
  • 6回复

关于在Qt中建的类 [复制链接]

上一主题 下一主题
离线johnrambos
 

只看楼主 倒序阅读 楼主  发表于: 2017-10-21
如题,我建立了一个类,然后在public中 void test()函数,在函数中有qDebug()<<"show it";这一句话,在构建运行后控制台直接输出了show it,test()这个函数不是构造函数啊,为什么会在没有调用的情况下显示show it?
离线johnrambos

只看该作者 1楼 发表于: 2017-10-21
抱歉,我刚才遇到这种情况,举措了例子,实际上我的函数是void paintEvent(QPaintEvent *e);就在里面写了个qDebug()<<"shoe it",没有调用它,但是它一直在控制台上show it;
离线小韩老师

只看该作者 2楼 发表于: 2017-10-21
可能void paintEvent(QPaintEvent *e)是你继承类里的虚函数,该虚函数一直被基类调用,因而该函数也一直被调用,一直打印信息
离线johnrambos

只看该作者 3楼 发表于: 2017-10-23
回 小韩老师 的帖子
小韩老师:可能void paintEvent(QPaintEvent *e)是你继承类里的虚函数,该虚函数一直被基类调用,因而该函数也一直被调用,一直打印信息 (2017-10-21 23:23) 

我试过了,是调用的QPaintEvent这个形参,去掉这个形参以后发现函数无法被自动调用
离线小韩老师

只看该作者 4楼 发表于: 2017-10-23
void paintEvent(QPaintEvent *e)和void paintEvent()不是一个函数,你使用第二个函数,就不是继承于基类中的虚函数,自然不会自动被调用
离线yuyu414

只看该作者 5楼 发表于: 2017-10-25
先了解下C++的继承和多态吧,paintEvent是虚函数
离线johnrambos

只看该作者 6楼 发表于: 2017-10-26
回 yuyu414 的帖子
yuyu414:先了解下C++的继承和多态吧,paintEvent是虚函数 (2017-10-25 17:48) 

好的,这个我没有想到,他还是个虚函数,谢谢
快速回复
限100 字节
 
上一个 下一个