1.信号与槽机制
让一个对象产生的信号可以被另一个对象接受并处理。
QT 基本上所有的对象都继承QObject 对象,在这个对象中有一个静态函数connect();
QObject::connect(&button,SIGNAL(),&w,SLOT());
前两个参数是信号,后两个参数是槽。经过信号与槽的连接,按钮button的close()与窗口w close()函数就进行了绑定。调用click()就相当于调用了close() ,将两个独立的模块,通过第三方连接起来,降低了耦合性。
Windows消息处理机制,类似于QT的信号与槽。
2.string 转化为 char *
使用string提供的函数c_str()
char *c;
string s = "1234";
c = s.c_str();
最后c指向的内容是垃圾值,s对象被析构,其内容被处理。
char c[10];
string s = "1234";
strcpy(c,s.c_str());
c_Str() 返回的是一个临时指针,不能对其进行操作。
3.STL 标准模板库:
特点:数据结构和算法分离
4.set 集合容器 ,所包含的元素是唯一的,集合中的元素默认是从大到小进行排序。
插入元素,按顺序进行插入。set不可以直接修改元素,必须是删除原来的元素,在插入新元素。
multiset:元素可以重复出现
map:关联式容器,键值对序列。
key是唯一的,排序按照默认的从小到大进行排序,支持[]操作
multimap:键可以出现多次,不支持[]操作
5.虚函数和纯虚函数
1.二者定义方式不同,虚函数可以再基类中定义,也可以通过重载在子类中定义。纯虚函数在基类中只有声明,定义在子类中实现。
2.含有纯虚函数的类可以称为抽象类,只有虚函数的类不能叫做抽象类
3.含有纯虚函数的类不能实例化对象,不许被子类继承重载进行实现。纯虚函数没有实体,不是完整的函数,无法调用,无法为其分配内存。
6.C++支持两种多态
编译时:重载函数
运行时: 虚函数(虚函数表,虚指针)
如有不足,请各位在下方留言补充,谢谢!