快讯

『21天精通C++』第三周学习笔记(3-1)

2004-02-14 09:34  出处:PConline  作者:雷神  责任编辑:zwg 

作者:雷神 转载请联系作者 第十五天和第十六天   从已存在的类继承得到新类的过程叫做派生。派生是继承的过程。 用:将派生类和基类分开。派生类将继承基类所有公有成员。(构造函数和析构函数除外) 不要设计有许多私有成员的基类。 protected:被保护成员,可以被基类和派生类使用。通常基类只包括公有和被保护成员。 如果希望类外程序包括派生类都无权访问类中数据,那么将其定义为私有。 class base:private emp//取代继承时VC++提供的缺省设置方式是private.即是从基类继承到的成员在派生类全都是私有成员。 class base:protected emp//继承来的保护成员和公有成员在派生类中全部都为被保护成员。 最常用的是这种: class base:public emp//基类中的保护成员在派生类仍旧为保护成员,基类中的公有成员在派生类中仍旧为公有成员。   内部的缺省构造函数没有处理常量的能力。因此要求类中出现常量成员时需要自定义构造函数。并且需要利用构造初始化表,构造函数才能真正的进行构造和初始化,而不是构造和赋值。 class c{ int i; char a; float b; public: c(int i,char a,float b)://此处时冒号,构造函数原型声明,可以和初始化表在一行。 i(I),a(A),b(B){};//此处是初始化表 } 注意:字符数组成员和指针通常被保存在堆中,故要求在函数内赋值。 类中没有数组成员时,应当用构造初始化表完成所有初始化工作。 为什么要用继承:   通过继承再次利用了自己编写的代码,既维持了对数据的保护,又是开发程序的有利工具。如果买来了类工具库,甚至可以在没有实现部分源代码的情况下派生出新的类来,当需要得到一个和类库所提供的不同的窗口类时,可通过继承得到一个略有不同的新窗口。   继承的一个优点是可以在已经了解的编写好的代码基础上编写新的代码,从已经编写并调试好的类中很容易就能够派生出新的类。通过继承复用代码和数据,比非OOP程序设计中的复用更加安全有效。 被保护的访问权限用在何处?   在VC++添加被保护的访问权限是为了在维持对数据保护的情况下完成继承。派生类不能使用基类中的私有成员。   将基类中的某些成员定义为保护成员防止了类外的程序对其的访问,同时又允许派生类访问,被保护的成员仍旧不被余下程序所见,但所有的派生类都可以访问它。如果没有被保护访问权限就不能做到既对数据进行保护(私有性)又可以使派生类可以访问。 由一个基类得到派生类可以做那些改动。   可以在派生类添加数据成员和功能函数。子类总是比父类功能强大。 为什么单向继承优于多向继承?   单向继承代码比多向继承代码易于编写,可以加快编程速度并可减少错误。 为什么派生类必须定义访问权限?   因为在VC++中所有的派生类继承基类时缺省为私有继承。这种限制会带来不便。   将访问权限定义为protected将使得继承得到的公有成员和保护成员在派生类中都是保护成员。   将访问权限定义为public将使得继承得到的公有成员仍为公有成员,保护成员仍为保护成员,这是最通用的方式。   用构造初始化表后,除了能构造常量成员对象外,还可以使构造函数变的简捷,构造初始化表负责构造派生类。   字符数组必须在函数体内被赋值。字符数组成员和指针成员通常被保存在堆中故而要求在构造函数体内赋值。
键盘也能翻页,试试“← →”键
IT热词搜索 来源:360新闻
相关文章

相关软件:

腾讯QQ2012
大小:52.93 MB 授权:免费
腾讯QQ2012
立即下载
腾讯QQ2013
大小:49.32 MB 授权:免费
腾讯QQ2013
立即下载