07年8月30日
1、友元的使用
在类里声明一个普通函数,标上关键字friend,就成了该类的友元,可以访问该类的一切成员。
友元函数不是成员函数,它是类的朋友,可以访问类的全部成员,在类的内部,只能声明他的函数原型,友元的声明可以在任何部位,友元函数的定义则是在类的外部!
一个类的成员函数可以是另一个类的友元!
整个类可以是另一个类的友元!
使用原因:提高效率;方便重载操作符的使用。但随着硬件性能的提高,友元的这点作用是微不足道的,相反,破坏了类的封装!所以在使用时要权衡。
2、继承
派生类继承它父类的属性和操作!
形式:class GraduateStudent:public Student{ };
类与类之间,你做你的,我做我的,以接口为沟通,即使类与子类也不例外!
继承和组合,类以另一个类对象作数据成员,称为组合!
3、多态性
在运行时,能依据其类型确认调用哪个函数的能力,称为多态性!(滞后联编)
若语言不支持多态,只能称为基于对象的!
为了指明某个成员函数具有多态性,用关键字virtual来标志其为虚函数!
编译通常在先期联编状态下工作,只要看到虚函数,才把它作为滞后联编来实现。多态性增加了一些数据存储和执行指令的代价,但是值得的。
一个函数在基类中声明为虚函数,则该虚函数性质自动向下传给子类!
函数名相同,参数不同或返回值不同写上virtual也不是虚函数,不构成多态性!有一种例外,如基类的虚函数返回基类的指针或引用,子类的虚函数返回子类的指针或引用,则c++将视其为同名虚函数而进行滞后联编!
4、虚函数
主要是为了多态性
一个类中将所有成员函数都尽可能设置为虚函数总是有益的,除增加一些资源开销。
1)只有类的成员函数才能声明为虚函数
2)静态函数不能声明为虚函数
3)内联函数也不能
4)构造函数也不能
5)晰构函数可以,且常声明为虚函数!
5、分解(factoring)
从相似的类中,将共有特征提取的过程!
6、抽象类
声明一个不能有实例对象的类,这样的类的唯一用途就是被继承,这种类称为抽象类!
一个抽象类至少具有一个纯虚函数---------被标明为不具体实现的虚成员函数,
例:virtual void withdrawal(float amount ) = 0; //纯虚函数
不能创建一个抽象类的对象,但可以声明一个抽象类的指针或引用~!
阅读(843) | 评论(0) | 转发(0) |