美文网首页C++ 杂记
C++ 类的继承与派生(一)公有继承

C++ 类的继承与派生(一)公有继承

作者: 赵者也 | 来源:发表于2017-01-06 21:52 被阅读29次

注意:本文中代码均使用 Qt 开发编译环境
一、类的继承与派生
(1)保持已有类特性构造新类过程称为继承
(2)在已有类的基础上新增自己的特性产生新类过程叫做派生
(3)被继承已有类叫做基类
(4)派生出的新类称为派生类
二、继承与派生的目的
(1)继承的目的:实现代码重用
(2)派生的目的:当新的问题出现,原有程序无法(或不能完全)解决时,需要对原有程序进行改造

派生类的声明形式:

class 派生类名: 继承方式 基类名
{
       成员声明;
}

继承方式:不同的继承方式的影响主要体现在:
(1)派生类成员对基类成员的访问控制
(2)派生类对象对积累成员的访问控制

三种继承方式:<1>公有继承 public <2>私有继承 private <3>保护继承 protected

公有继承(public)
(1)基类的public和protected成员的访问属性在派生类保持不变,但基类的private成员不可访问
(2)派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员
(3)通过派生类的对象只能访问基类的public成员

例如:公有继承举例

#include <QCoreApplication>
#include <QDebug>

class Point {
public:
    void initP(float xx=0,float yy=0){
        X = xx;
        Y = yy;
    }

    void move(float xOff,float yOff){
        X += xOff;
        Y += yOff;
    }

    float getX(){
        return X;
    }

    float getY(){
        return Y;
    }

private:
    float X,Y;
};



class Rectangle:public Point {
public:
    void initR(float x, float y, float w, float h){
        initP(x,y);
        W=w;
        H=h;
    }

    float getH(){
        return H;
    }

    float getW(){
        return W;
    }

private:
    float W,H;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Rectangle rect;
    rect.initR(2,3,20,10);
    rect.move(3,2);

    qDebug() << rect.getX() << "," << rect.getY() << ","
             << rect.getW() << "," << rect.getH();

    return a.exec();
}

运行结果:
5 , 5 , 20 , 10

相关文章

  • [C++之旅] 18 公有继承、保护继承和私有继承

    [C++之旅] 18 公有继承、保护继承和私有继承 继承 继承的类称为派生类或子类,被继承的类称为基类或父类。继承...

  • 继承与接口

    继承方式 如果不指定public,C++默认的继承是私有继承..1.公有继承:派生类的对象可以访问基类中的公有成员...

  • 2017.9.18

    Class派生类名:继承方式 基类名{派生类中的新成员}公有继承:public 私有继承:private 保护继承...

  • C++ 类的继承与派生(一)公有继承

    注意:本文中代码均使用 Qt 开发编译环境一、类的继承与派生(1)保持已有类的特性而构造新类的过程称为继承(2)在...

  • 9.18

    class 派生类名:继承方式 基类名{ 派生类中的新成员 } 派生有三种继承方式: 1.公有继承:public ...

  • 4期c++9月18号

    上午 一.继承 1.class 派生类名:继承方式 基类名 { 派生类中的新成员 } 三种继承方式:公有继承:pu...

  • 9.18 c++总结

    1.派生 class 派生类名:继承方式 基类名 { 派生类中的新成员} 2.三种继承方式: 公有继承:publ...

  • 《C++ Primer Plus》:类继承

    继承的例子: TableTennisPlayer为基类,RatedPlayer为派生类,且为公有派生类(publi...

  • C++ 类继承

    C++类的继承要点: 派生类不能直接访问基类的私有成员变量,只能通过基类的公有或保护方法进行访问。 创建派生类对象...

  • 9月18日C++学习总结

    1.派生类的三种继承方式:1)公有继承:public 2)私有继承:private 3)保护继承:protecte...

网友评论

    本文标题:C++ 类的继承与派生(一)公有继承

    本文链接:https://www.haomeiwen.com/subject/ttpxbttx.html