Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1334683
  • 博文数量: 177
  • 博客积分: 3640
  • 博客等级: 中校
  • 技术积分: 1778
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 16:51
文章分类

全部博文(177)

文章存档

2014年(1)

2013年(10)

2012年(3)

2011年(163)

分类: C/C++

2011-05-29 19:09:21

整个c++程序设计全面围绕面向对象的方式进行,类的继承特性是c++的一个非常非常重要的机制,继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中增加原有类中没有的成分。 

  可以说这一章节的内容是c++面向对象程序设计的关键。 

  下面我们简单的来说一下继承的概念,先看下图:

  上图是一个抽象描述的特性继承表 

  交通工具是一个基类也称做父类),通常情况下所有交通工具所共同具备的特性是速度与额定载人的数量,但按照生活常规,我们来继续给交通工具来细分类的时候,我们会分别想到有汽车类和飞机类等等,汽车类和飞类同样具备速度和额定载人数量这样的特性,而这些特性是所有交通工具所共有的,那么当建立汽车类和飞机类的时候我们无需再定义基类已经有的数据成员,而只需要描述汽车类和飞机类所特有的特性即可,飞机类和汽车类的特性是由在交通工具类原有特性基础上增加而来的,那么飞机类和汽车类就是交通工具类的派生类也称做子类)。以此类推,层层递增,这种子类获得父类特性的概念就是继承。 

  下面我们根据上图的理解,有如下的代码:

#include <iostream>    
using namespace std;  
  
class Vehicle  
{  
public:  
    void EditSC(float speed,int total);  
protected:  
    float speed;//速度  
    int total;//最大载人量  
};  
void Vehicle::EditSC(float speed,int total)  
{  
    Vehicle::speed = speed;  
    Vehicle::total = total;  
}  
class Car:public Vehicle//Car类继承Vehicle的特性,Car类是Vehicle的派生类  
{  
public:  
    Car()  
    {  
        aird=0;  
    }  
protected:  
    int aird;//排量  
};  
  
class plane:public Vehicle  
{  
protected:  
    float wingspan;//翼展  
};  
  
void main()  
{  
    Car a;  
    a.EditSC(150,4);  
    cin.get();  
}

  派生类的定义可以在类名称后加冒号public空格加基类名称进行定义,如上面代码中的class Car:public Vehicle。

阅读(597) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~