• C++继承与组合详解

    2014-11-09
    我们知道,在一个类中可以用类对象作为数据成员,即子对象。实际上,对象成员的类型可以是本派生类的基类,也可以是另外一个已定义的类。 在一个类中以另一个类的对象作为数据...
  • C++基类与派生类的转换

    2014-11-09
    C++基类与派生类的转换
    在公用继承、私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成员的访问权限在派生类中全部...
  • C++虚基类详解

    2014-11-09
    我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必...
  • C++多重继承的二义性问题

    2014-11-09
    多重继承可以反映现实生活中的情况,能够有效地处理一些较复杂的问题,使编写程序具有灵活性,但是多重继承也引起了一些值得注意的问题,它增加了程序的复杂度,使 程序的编写...
  • C++类的多重继承

    2014-11-07
    前面讨论的是单继承,即一个类是从一个基类派生而来的。实际上,常常有这样的情况:一个派生类有两个或多个基类,派生类从两个或多个基类中继承所需的属性。C++为了适应这种情...
  • C++派生类的析构函数

    2014-11-07
    析构函数的作用是在对象撤销之前,进行必要的清理工作。当对象被删除时,系统会自动调用析构函数。析构函数比构造函数简单,没有类型,也没有参数。 在派生时,派生类是不能继...
  • C++派生类构造函数的特殊形式

    2014-11-07
    在使用派生类构造函数时,有以下特殊的形式。 1)当不需要对派生类新增的成员进行任何初始化操作时,派生类构造函数的函数体可以为空,即构造函数是空函数,如例11.6(具体代码请...
  • C++多层派生时的构造函数

    2014-11-07
    一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构。在上面叙述的基础上,不难写出在多级派生情况下派生类的构造函数。 通过例下面的程序,读者可以...
  • C++有子对象的派生类的构造函数

    2014-11-07
    类的数据成员不但可以是标准型(如int、char)或系统提供的类型(如string),还可以包含类对象,如可以在声明一个类时包含这样的数据成员: Student s1; //Student是已声明的类名,s1是...
  • C++派生类的构造函数

    2014-11-07
    用户在声明类时可以不定义构造函数,系统会自动设置一个默认的构造函数,在定义类对象时会自动调用这个默认的构造函数。这个构造函数实际上是一个空函数,不执行任何操作。如...
  • C++类多级派生时的访问属性

    2014-11-07
    在实际项目开发中,经常会有多级派生的情况。如图11.9所示的派生关系:类A为基类,类B是类A 的派生类,类C是类B的派生类,则类C也是类A的派生类;类B称为类A 的直接派生类,类C称为...
  • C++保护成员和保护继承

    2014-11-06
    protected 与 public 和 private 一样是用来声明成员的访问权限的。 由protected声明的成员称为受保护的成员,或简称保护成员。从类的用户角度来看,保护成员等价于私有成员。但有一点与私...
  • C++类的私有继承

    2014-11-06
    在声明一个派生类时将基类的继承方式指定为private的,称为私有继承,用私有继承方式建立的派生类称为私有派生类(private derived class ), 其基类称为私有基类(private base class )。 私有基...
  • C++类的公用继承

    2014-11-06
    在定义一个派生类时将基类的继承方式指定为public的,称为公用继承,用公用继承方式建立的派生类称为公用派生类(public derived class ),其基类称为公用基类(public base class )。 采用公用...
  • C++派生类成员的访问属性

    2014-11-06
    既然派生类中包含基类成员和派生类自己增加的成员,就产生了这两部分成员的关系和访问属性的问题。在建立派生类的时候,并不是简单地把基类的私有成员直接作为派生类的私有成...
  • C++派生类的构成

    2014-11-06
    派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分。从基类继承的成员体现了派生类从基类继承而获得的共性,而新增加的成员体现了派生类的个性。正是这些新增...
  • C++派生类的声明方式(定义方式)

    2014-11-06
    先通过一个例子来说明怎样通过继承来创建派生类,先从最简单的单继承开始。 假设已经声明了一个基类Student(基类Student的定义见上节:C++继承与派生的概念),在此基础上通过单继...
  • C++继承与派生的概念、什么是继承和派生

    2014-11-06
    C++继承与派生的概念、什么是继承和派生
    在C++中可重用性是通过 继承(inheritance) 这一机制来实现的。因此,继承是C++的一个重要组成部分。 前面介绍了类,一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和...
  • C++类型转换函数(类型转换运算符函数)

    2014-11-05
    用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。 C++提供类型转换...
  • C++数据类型转换以及转换构造函数

    2014-11-05
    标准数据类型之间的转换 在C++中,某些不同类型数据之间可以自动转换,例如 int i = 6; i = 7.5 + i; 编译系统对 7.5是作为double型数处理的,在求解表达式时,先将6转换成double型,然后与...
  • C++重载流插入运算符和流提取运算符

    2014-11-05
    C++的流插入运算符和流提取运算符是C++在类库中提供的,所有C++编译系统都在类库中提供输入流类 istream和输出流类ostream。cin和cout分别是istream类和ostream类的对象。在类库提供的头文件...
  • C++双目运算符重载

    2014-11-05
    双目运算符(或称二元运算符)是C++中最常用的运算符。双目运算符有两个操作数,通常在运算符的左右两侧,如3+5,a=b,i10等。在重载双目运算符时,不言而喻在函数中应该有两个参数。...
  • C++运算符重载函数作为类成员函数和友元函数

    2014-11-05
    例10.2中对运算符+进行了重载,使之能用于两个复数的相加。在该例中运算符重载函数operator+作为Complex类中的成员函数。 可能有的读者会提出这样的问题:+是双目运算符,为什么在例...
  • C++允许重载的运算符和不允许重载的运算符

    2014-11-05
    C++中绝大部分的运算符允许重载,具体规定见表10.1。 表10.1 C++允许重载的运算符 双目算术运算符 + (加),-(减),*(乘),/(除),%(取模) 关系运算符 ==(等于),!= (不等于), (小于), (大于,...
  • C++运算符重载的规则

    2014-11-01
    C++对运算符重载定义了如下几条规则。 1) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 例如,有人觉得BASIC中用**作为幂运算符很方便,也想在C++中将**定义为...