Qt每天一例9.迷惑的子父类转换
Posted 鱼酱2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt每天一例9.迷惑的子父类转换相关的知识,希望对你有一定的参考价值。
猜猜输出的打印是啥
#include <QCoreApplication>
#include <QtDebug>
class Father
public:
Father()
qDebug()<<"father make";
;
~ Father()
qDebug()<<"father dead";
;
;
class Son : public Father
public:
int cake=666;
Son():cake(23333)
qDebug()<<"son make";
;
~ Son()
qDebug()<<"son dead";
;
void shout()
qDebug()<<"son shout"<<cake;
;
int main(int argc, char *argv[])
QCoreApplication a(argc, argv);
Father *f = new Father;
static_cast<Son*>(f)->shout();
return a.exec();
90%你猜错了
father make
son shout -1414812752
为什么?
因为static_cast只是个类型转换,所以cake是个未初始化值。
以上是关于Qt每天一例9.迷惑的子父类转换的主要内容,如果未能解决你的问题,请参考以下文章