C++重点语法概要
CPP重点语法概要
/*********************************************************************************************
* 文 件 名:CPP重点语法概要
* 文件格式txt/PDF
* 时 间:2010-09-26 / 21:18
* 作 者:geniusgogo
* 联系方式:xpxyr@sina.com
*********************************************************************************************/
语法基础篇
1、引用
>不能建立引用的引用
>不能建立引用数组和数组引用
>不能建立指向引用的指针
2、名字空间
space_name::memname;//访问一次
using namespace space_name::memname;//引用一个
using namespace space_name;//引用一个空间
3、类的常量成员函数
>只有类的成员函数才能申明为常量函数
>常量函数不能修改数据成员
>申明和实现类型都必须加上const
4、构造函数的初始化列表
>初始化列表的成员之间用逗号隔开
>每个列表成员都用括号复制
>常量成员、引用成员、类对象成员、调用基类构造函数都需要用初始化列表方式
5、类的静态成员
>必须在类中声明为static
>在类外进行定义,不能加上static
>必须在类外进行定义并赋初始值
>类中的static函数只能访问类中的static成员
6、友元关系
>友元函数和友元成员函数是有区别的
>友元类的所有成员函数都是另一类的友元成员函数
>友元关系只是单向的
7、继承关系
>子类不能够继承到父类的静态成员、友元成员、构造函数和析构函数
>基类的private数据成员在子类中已经加锁,要想访问只能通过父类继承过来的方法
>继承中子类的同名成员对基类的成员具有隐藏作用,要想访问基类被隐藏的成员需要加上域名限定方式
>构造函数的次序是:
基类构造函数-->成员对象构造函数-->派生类构造函数
>当基类没有无参数类型的构造函数时则在子类中必须定义构造函数
>子类只负责直接基类的构造函数调用,但是需要负责虚基类的构造
>虚拟继承的类在子类中只有一份拷贝,从而解决了同名成员的二义性
8、子类和基类的关系
>可以用子类的对象赋值给基类对象
>可以用子类的对象的地址赋值给基类指针
>可以用子类的对象赋值给基类对象的引用
>以上三种方式可以通过基类对象调用子类从基类继承的成员,但不能访问子类新成员
9、虚函数特性
>当基类的成员函数声明为virtual后,那么在子类的同原型函数也是虚函数
>如果子类重载了基类的virtual函数后,则子类的重载函数是普通函数,不具有virtual特性
>基类访问子类的成员时,如果访问的是virtual成员那么将访问到的是指针或者引用实际所
指的成员(多数是用来访问子类的)
>子类调用基类继承来的函数时,如果其中有调用虚函数,则也会调用到子类的虚函数
>static函数不能定义为virtual函数,inline函数也不能定义为virtual函数
>释放基类指向子类对象的指针时,需要将析构函数声明为virtual属性
10、纯虚函数
>在类中声明的时候被赋值为0且没有实现代码的函数称为虚函数
>具有纯虚函数的类是抽象类,不能用来定义对象
>可以认为这种实现方式称为接口
11、运算符重载
>(.、 .*、 ::、 ?:、 #、 sizeof、 typeid)不能被重载
>(=、 []、 ()、 ->)只能被类的静态成员函数重载,其他运算法重载函数不能是静态的
>重载运算符函数不能使用默认参数,且不能改变其原本的运算符所需的参数个数和意义
>如果是友元运算符重载,则函数的参数个数必须和运算符实际需要的个数相同
>如果是类的成员运算符重载,则函数的参数个数应比实际需要的参数少一个
>如果死类成员函数重载的运算符,则在调用的时候应该注意参数的顺序
>在单目运算符重载中,默认都是前缀形式
>要想实现单目运算符的后缀重载则必须在参数表中增加一个无用的形式参数(只写参数类型)
>赋值运算符的重载,就是大多数情况下提到的拷贝构造函数,拷贝构造函数在默认的情况下
由编译器自动添加,但是功能上只是简单的按值拷贝,如果在遇到指针共享内存的情况可
能会出现共享内存被释放,而另一个指针还在指向这个被释放了的内存区域
posted on 2010-09-27 15:25 geniusgogo 阅读(1067) 评论(0) 编辑 收藏 举报