QT单继承问题
如下程序,为什么在构造函数后面加冒号初始化就可以直接创建一个标签?mylabel(char *str):QLabel(str) 它是怎么创建的?#include <QApplication>
#include<QLabel>
#include<stdlib.h>
class mylabel:public QLabel
{
public:
mylabel(char *str):QLabel(str)
{
}
void run(char *str)
{
system(str);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
mylabel my1("calc");
my1.show();
my1.run("notepad");
return a.exec();
}
你好,
这个句代码是典型的C++中通过父类构造对象的过程。
因为在类定义中已经声明了mylabel类继承与QLabel类,此时构造mylabel类可以直接使用父类的构造函数。即mylabel(char *str):QLabel(str),使用冒号调用父类构造函数。
这一点类似于Java里的super()函数。
相关知识:继承、多态、耦合
页:
[1]