标签:
1、引用和指针的区别
1)引用被创建的时候需要初始化,指针可以等到任何时候再初始化
2)引用不能指向NULL,指针可以指向NULL
3) 引用被初始化后,不能再绑定到其它对象,而指针初始化后,可以改变他指向的对象
对于第3条的理解:
int m=90;
int &n=m;
int b=99;
n=b;
b=999;
cout<<n<<endl;//结果是99而不是999,因为引用n第二次并没有绑定到b上
2、面向对象的特征
封装、继承、多态
封装:增强安全性和简化编程,使用者不需要了解具体的实现细节,而只要通过外部借口和特定的访问权限来使用类的成员
继承:可以使用现有类的所有功能,继承可以使一个对象直接使用另外一个对象的属性和方法
多态:使得能够利用基类指针指向不同类的对象,根据所引用对象的不同,以不同方式执行相同的操作
3、C++三种继承方式
public继承:基类成员保持自己的访问权限,public在子类中仍是public,proctected在子类仍是protected,基类private成员在子类中不可见
protect继承:基类成员中的public和protected成员都变成protected成员,基类private成员在子类中不可见
private继承:基类成员中的public和protected成员都变成private,基类private成员在子类中不可见
4、class和struct的区别
class默认是private,struct默认是public
5、多态
多态简单描述:一个接口,多种实现
主要作用:提高程序的可复用性,精简了代码的编写量
6、重载,覆盖(重写),隐藏
重载:相同的函数名,不同的参数类型(不同的参数类型,不同的参数个数,不同的参数顺序【参数类型必须不一样】),不能呢个通过访问权限,返回类型,抛出异常进行重载
覆盖(重写):基类有virtual关键字,派生类和基类的函数名相同,参数类型相同,返回类型也要一样
隐藏:a)如果派生类和基类的函数名和参数类型都相同,但是基类没有virtual关键字,此时基类的函数被隐藏 b)如果派生类的函数和基类的函数函数名相同,但是参数类型不同,此时不论
基类是否有virtual 关键字,基类的函数都被隐藏。========对于隐藏的另外理解就是,除了函数名相同,不满足覆盖的条件就是隐藏。
标签:
原文地址:http://www.cnblogs.com/wuxiangli/p/5617971.html