两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

繼承與派生

如果頭一次聽到這個名字的話,就先要想想這兩個詞的意思了。先來說繼承,這與現(xiàn)實生活中的繼承意思差不多,比如一個人繼承另一個人的財產(chǎn)、以及子承父業(yè)等等是一個意思,擁有的這個過程就叫做繼承。同樣,在C++中,比如有兩個類,新類擁有原有類的全部屬性叫做繼承!原有類產(chǎn)生新類的過程叫做派生!而我們把原有的這個類稱之為父類基類,由基類派生出的類叫做派生類或者叫做子類。大家從名字上就可以看出他們的關(guān)系。


那么繼承和派生有什么好處呢?為什么C++要有這種機(jī)制呢?

1. 體現(xiàn)面向?qū)ο蟮木幊趟枷?,更好的表達(dá)各類型之間的關(guān)系。

2. 派生類除了可以繼承基類的全部信息外,還可以添加自己的那些不同的、有差異的信息,就像生物進(jìn)化的道理一樣,派生類在擁有基類的全部基礎(chǔ)之上還將更強(qiáng)大。

3. 派生類繼承到基類的成員是自動、隱藏的擁有,即不需要我們重新定義,這就節(jié)省了大量的代碼,體現(xiàn)了代碼重用的軟件工程思想。


下面,我們來看實際代碼的實現(xiàn),如何繼承,實現(xiàn)派生類:

/**************************************
//Des:C++教程demo
//Author:Huang
//Copyright:www.sztianhecheng.cn
//Date:2018/6/20
**************************************/
#include<iostream>
using namespace std;
class Clock
{
private:
    int H;
    int M;
    int S;
public:
    int SetTime(int h,int m,int s)
    {
        this->H = h;
        this->M = m;
        this->S = s;
        return 0;
    }
    int ShowTime()
    {
        cout<<"Now:"<<H<<":"<<M<<":"<<S<<endl;
        return 0;
    }

};

class AlarmClock:public Clock
{
private:
    int AH;
    int AM;
public:
    int SetAlarm(int AH,int AM)
    {
        this->AH = AH;
        this->AM = AM;
        return 0;
    }
    int ShowAlarm()
    {
        cout<<"AlarmTime:"<<AH<<":"<<AM<<endl;
        return 0;
    }
};

int main()
{
    AlarmClock A;
    A.SetTime(19,15,50);
    A.ShowTime();
    A.SetAlarm(5,30);
    A.ShowAlarm();
    return 0;
}


運(yùn)行截圖如下:

C++繼承和派生


請大家閱讀代碼理解,其中Clock為基類,AlarmClock為派生類,注意定義派生類的語句:

class AlarmClock:public Clock

通過冒號表示繼承,其中public表示公有繼承、私有繼承和保護(hù)繼承,我們會在后面慢慢展開。代碼中,我們在主函數(shù)里定義了AlarmClock這個派生類的對象A,然后可以調(diào)用來自基類的SetTime和ShowTime方法,使用起來自己的一樣。同時,我們又在派生類中增加定義了自己的SetAlarm和ShowAlarm方法。請大家理解代碼并上機(jī)實驗。


至此,我們介紹了繼承和派生的基本概念,大家要理解之后上機(jī)敲代碼實驗,體會在何種情況下兩個有共性、有關(guān)聯(lián)的類可以存在這種關(guān)系,權(quán)衡使用。


點贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時間)