多态概念三层含义
继承是构成多态的基础
虚函数数构成多态的关键
函数重写是必备条件
#include<iostream>using namespace std;class Animal{public:void show(){cout << "动物的show" << endl;}virtual void run(){cout << "动物的跑" << endl;}virtual void fun(){cout << "动物的作用" << endl;}};class Cat :public Animal{public:void show(){cout << "这是猫的show" << endl;}void run(){cout << "猫用猫步跑" << endl;}void fun(){cout << "抓老鼠" << endl;}};class Fish :public Animal{public:void run(){cout << "鱼在水中游" << endl;}void fun(){cout << "鱼的作用是被观赏" << endl;}};int main(){Cat cat;cat.show();cat.run();cat.fun();Animal animal;animal.show();animal.run();animal.fun();Animal *pa = &cat;pa->show();pa->run();pa->fun();Fish fish;Animal af = fish;af.show();af.run();af.fun();Animal & afh = fish;afh.show();afh.run();afh.fun();}

多态好处可以类型通用,坏处失去子类个性
多窗口切换
信号与槽机制:
当某个事件出现时,通过发送信号,可以将与之相关的槽函数激活,即执行槽函数代码。
信号和槽用于两个对象之间的通信,信号和槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出的特征。在GUI编程中,当改变了一个部件时,总希望其他部件也能了解到该变化。
信号
信号是一种特殊类型的成员函数,他们被定义为当某个事件发生时就被发射。
当对象内部发生某些事件时,他能发出信号。如果这个信号连接到槽,那么这个槽就被执行。
可以将多个槽连接到同一信号,那么这些槽将按任意顺序一个接一个执行。
声明一个信号要是用signals关键字,signals前不能使用public、private、protected等限定字符,只有定义该信号的类及其子类才可以发射该信号。
信号只用声明,大部分情况下不需要自己定义实现。
信号函数没有返回值,只能是void类型。
信号和槽关联后,当槽所连接的信号被发射时,槽函数就被执行。
