C++学习笔记之继承

  继承是面向对象程序设计的三大特性之一,同时也是最重要的一个概念。继承允许我们根据一个已有的类来定义另一个类。当创建一个新类的,只需指定新建的类继承一个已有的类即可。这个已有的类我们成为基类(父类),新建的类我们称为派生类(子类)。

  写法:

  class A:public B    对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中是不变的,B的私有成员不被A所继承

  class A:protected B  对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中称为protected,基类的公有和受保护成员成为派生类的受保护成员,B的私有成员不被A所继承

  class A:private B 对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中称为private,基类的公有和受保护成员成为派生类的私有成员,B的私有成员不被A所继承

  要注意的是,一个派生类不能继承基类的如下成员:

  1.基类的构造函数、析构函数和拷贝构造函数

  2.基类的重载运算符

  3.基类的友元函数

  举例:

  #include <iostream>
  using namespace std;
   // 基类
  class Shape
  {
  public:
    void setWidth(int w)
    {
      width = w;
    }
    void setHeight(int h)
    {
      height = h;
    }
  protected:
    int width;
    int height;
  };
  // 派生类
  class Rectangle: public Shape  //public继承,基类成员访问修饰符不变
  {
  public:
    int getArea()
    {
      return (width * height);
    }
  };
 
  int main(void)
  {
    Rectangle Rect;
    Rect.setWidth(5);  //Rectangle公有继承自Shape,setWidth函数访问修饰符不变,为public,所以Rect对象可以使用运算符.访问setWidth函数
    Rect.setHeight(7);
    // 输出对象的面积
    cout << "Total area: " << Rect.getArea() << endl;
    return 0;
  }

 

posted @ 2018-03-28 10:26  Mr.jason冯  阅读(97)  评论(0)    收藏  举报