开发的一些总结(2)

2017-01-08 08:20:53来源:CSDN作者:Scarlett_OHara人点击

第七城市

1.static的意义

如果任何一个X前加了static修饰,那么这个X允许其他源文件建立同名函数且不冲突。不能被其他源文件访问、修改,可以直接用class访问,不用实例化。同时static类的东西也不能操作非static类型的东西。

在头文件如果说明了一个static类型变量,就要在,cpp文件的最开头对其初始化。

2.类写成单例的好处

如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

3.虚函数

c++里虚函数的主要作用是“多态”。父类中提供虚函数的实现,为子类提供默认的函数实现。也可以直接=0,不去实现父类中的虚函数。比如一个绘制不同图形的函数draw(),在父类中定义为virtual void draw() = 0; 那么在子类中就可以引用这个函数画出不同的形状实现多态。

4。STL

从根本上说,STL就是一些容器额集合,这些容器有list,vector,set,map等。

5.template的使用

template主要有两种方式,template<class T> ;  template<typename A, typename B>.主要也是为了实现多态。

举例:

template<class T>class point{    //构造函数   //析构函数   T x;   T y;   public:   T gety();}Point<int>a;
在这个例子中,传入了int型的数据,你还可以穿其他类型的数据,从而实现多态。

6.static_cast<     *>(...)与dynastic_cast<    *>(...)区别

前者可以实现c++内置基本数据类型之间的相互转换。如果涉及到类的话,它只能在有相互联系的类型中进行相互转换,不一定包含虚函数。

后者不能用于内置基本数据类型之间的相互转换。基类中一定要有虚函数,否则编译不通过。

7.补充

QList<> 里还可以装class类型

QMap和QHash不同是QHash查询速度更快,QMap存值是按键值来存的,而Hash可以任意存。都有两种STL风格的迭代器 QMap<key,T>::const_iterator , QMap<key,T>::iterator.前者只读,后者可读写。

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台