组合,继承,子类父类

组合

用已有的对象组合出新的对象。
在这里插入图片描述engine 和tyre 是已知的类,他们组合成一个新类 car。

2种模式
Fully:在新类里面
By reference;通过指针。
在这里插入图片描述在这里插入图片描述

继承

我拿已有的类,在这个类的基础上做些改造,来创建一个新的类。新类比原来的类数据更多。父类的私有变量子类不能直接调用
组合是改变类的对象,继承是改变类
学生继承person类。person是基类,父类。
学生类 是子类
public,protected ,private 基本用法
public :所有人都能动
protected: 给子类的,子类可以通过这个函数来调用私有变量。
private:所有人不能动

学生继承了person类A.h

#ifndef A_H
#define A_H

class A
{
public:
    A();
    ~A();
    void print();//所有都可调用
    void setI(int m);//所有都可调用
protected:
    void g();//只有子类能调用
private:
    int i; //只有A类的函数能调用
};

class B: public A
{
public :
    void f(); 
};

#endif // A_H

a.cpp

#include "a.h"
#include <QDebug>

A::A():i(0)
{
    qDebug() << "进入A构造函数" <<endl;
}
A::~A()
{
    qDebug() << "进入A析构函数" <<endl;
}
void A::setI(int m)
{
    i=m;
}
void A::print(){
    qDebug() << "A:print()="+QString::number(i) <<endl;
}
void B::f()
{
    setI(20);
    print();
}

main.cpp

#include "widget.h"
#include <QApplication>
#include <a.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;//不用看
    w.show();//不用看

    B b;
    b.setI(10);
    b.print();
    b.f();
    return a.exec();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值