C语言进阶

张萃

目录

  • 1 第一章  C++的初步知识
    • 1.1 从C到C++
    • 1.2 C++的词法和词法规则
    • 1.3 最简单的C++程序
    • 1.4 C++对C的扩充
      • 1.4.1 C++的输入输出
      • 1.4.2 用const定义常量
      • 1.4.3 函数原型声明
      • 1.4.4 函数重载
      • 1.4.5 函数模板
      • 1.4.6 有默认参数的函数
      • 1.4.7 变量的引用
      • 1.4.8 内置函数
      • 1.4.9 作用域运算符
      • 1.4.10 字符串变量
      • 1.4.11 动态分配/回收内存运算符
  • 2 类和对象
    • 2.1 面向对象程序设计方法概述
    • 2.2 类的声明和对象的定义
    • 2.3 类的成员函数
    • 2.4 对象成员的引用
    • 2.5 类和对象的简单应用
    • 2.6 类的封闭性和信息隐蔽
  • 3 关于类和对象的进一步讨论
    • 3.1 构造函数
    • 3.2 析构函数
    • 3.3 调用构造函数和析构函数的顺序
    • 3.4 对象数组
    • 3.5 对象指针
    • 3.6 共用数据的保护
    • 3.7 对象的动态建立和释放
    • 3.8 对象的赋值和复制
    • 3.9 静态成员
    • 3.10 友元
    • 3.11 类模板
  • 4 运算符重载
    • 4.1 什么是运算符重载
    • 4.2 运算符重载的方法
    • 4.3 重载运算符的规则
    • 4.4 运算符重载函数作为类成员函数和友元函数
    • 4.5 重载双目运算符
    • 4.6 重载单目运算符
    • 4.7 重载流插入运算符和流提取运算符
  • 5 继承与派生
    • 5.1 继承与派生的概念
    • 5.2 派生类的声明方式
    • 5.3 派生类的构成
    • 5.4 派生类成员的访问属性类型兼容规则
    • 5.5 派生类的构造函数和析构函数
    • 5.6 多重继承
  • 6 多态性与虚函数
    • 6.1 多态性的概念
    • 6.2 一个典型的例子
    • 6.3 虚函数
    • 6.4 纯虚函数与抽象类
  • 7 输入输出流
    • 7.1 C++的输入输出
    • 7.2 标准输出流
    • 7.3 标准输入流
    • 7.4 对数据文件的操作与文件流
    • 7.5 字符串流
继承与派生的概念


 C++的继承机制实现软件可重用。

 有时两个类的内容基本相同或有一部分相同。

 例如,已声明了类student:

class Student

{ private :

     int num;

     string name;

     char sex; 

       public:

    void display( )

    {cout<<"num: "<<num<<endl;

     cout<<"name: "<<name<<endl;

     cout<<"sex: "<<sex<<endl;}

}; 

      如果另一个部门除了需要已有的数据外,还需要地址信息,你可以再声明另一个类:

class Student1

{private :

        int num;

        string name;

        char sex;

        char addr[20]; 

     public:

void display()

      { cout<<"num: "<<num<<endl;

        cout<<"name: "<<name<<endl;

        cout<<"sex: "<<sex<<endl;

     cout <<"address:"<< addr<<endl;}

}; 

       可以看到新类中大部分成员是原来已有的。人们自然会想到能否利用原来声明的类student,加上新内容即可,以减少重复的工作。这就引出C++的继承机制。

       所谓继承,是在已存在的类A 的基础上建立一个新类B。类A称为基类或父类,类B 称作派生类或子类。子类从父类获得其已有的特性,这种现象称作类的继承。从另一个角度看从父类产生子类,称作类的派生

       一个基类可以派生出多个派生类,每个派生类又可以作为基类再派生出新的派生类。一个派生类只从一个基类派生,称作单继承。用图5.3表示。


       一个派生类也可从多个基类派生,也就是说一个派生类可以有两个或多个基类。一个派生类有两个或多个基类的称作多重继承。用图5.4表示。基类和派生类的关系可以表述为:派生类是基类的扩充,而基类是派生类的抽象。