一、面试题
1、什么是多态、虚函数、纯虚函数
多态是一种行为的多种实现方式,通过虚函数和虚指针来实现。是子类对父类虚函数重写然后父类通过虚指针调用重写后的实现。虚指针在类的最前面会指向一个虚函数表。里面记录了虚函数包括子类重写的。虚函数就是在函数前面加上virtual关键词且满足继承。纯虚函数指的是其本身没有需要实现必要的函数,声明只是为了给子类进行继承使用。
2、将引用作为函数参数的特点
函数参数本身是函数之间数据传输的方式。引用则是对数据起别名。其本质也是一种地址传递,但相比于传递指针,其本身不会另外开辟空间,调用的既是其本身,所以效率更高。其次如果是不允许修改的场合应用常引用,且常引用类只能调用常成员对象。
3、结构和联合的区别
结构体和联合体本身都是数据结构,其内部都能定义多个数据类型不同的成员。不同点在于结构体大小为结构体成员大小之和且满足结构体对齐。而联合体大小则是联合体中最大成员的大小。
二、今日总结
在信号和槽函数中,每个组件都有其对应的信号和槽函数。通过这些来实现组件间通信。
1、连接方式
qt4
connect(组件一指针,SIGNAL(组件一有的信号),组件二指针,SLOT(组件二有的槽函数));
qt5
connect(组件一指针,&组件类::信号,组件二指针,&组件类::槽函数);
connect(组件一指针,&组件类::信号,[](){});
2、连接关系
一个槽函数可以对应多个信号
一个信号可以对应多个槽函数
一个信号可以对应另一个信号,即一个信号被调用则两个信号同时被调用
三、作业
源文件
头文件