C++基礎(十五)-C++ 類繼承

1.C++ 類繼承

面向對象程序設計中最重要的一個概念是繼承。繼承允許我們依據(jù)另一個類來定義一個類,這使得創(chuàng)建和維護一個應用程序變得更容易。
當創(chuàng)建一個類時,您不需要重新編寫新的數(shù)據(jù)成員和成員函數(shù),只需指定新建的類繼承了一個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類。

image.png

2.C++ 類繼承規(guī)則

class derived-class: access-specifier base-class

  • access-specifier 訪問修飾符 : public、protected 或 private 其中的一個
  • base-class 是之前定義過的某個類的名稱。如果未使用訪問修飾符 access-specifier,則默認為 private。
// 基類
class Animal {
    // eat() 函數(shù)
    // sleep() 函數(shù)
};
//派生類
class Dog : public Animal {
    // bark() 函數(shù)
};

3. 繼承類型

  • 公有繼承(public):當一個類派生自公有基類時,基類的公有成員也是派生類的公有成員,基類的保護成員也是派生類的保護成員,基類的私有成員不能直接被派生類訪問,但是可以通過調(diào)用基類的公有和保護成員來訪問。
  • 保護繼承(protected): 當一個類派生自保護基類時,基類的公有和保護成員將成為派生類的保護成員。
  • 私有繼承(private):當一個類派生自私有基類時,基類的公有和保護成員將成為派生類的私有成員。

4. 具體實現(xiàn)

4.1 定義頭文件Aminal.h
#ifndef AMINAL_H
#define AMINAL_H
#include <iostream>
using namespace std;
class Aminal
{
private:
    int age;
protected:
    string sex;
    /* data */
public:
    Aminal(/* args */);
    ~Aminal();
    void setAge(int ae);
    int getAge();
    void setSex(string sx);
    string getSex(); 
};
#endif
4.2 頭文件實現(xiàn)Aminal.cpp
#include <iostream>
#include "Aminal.h"
using namespace std;
Aminal::Aminal(/* args */)
{
}
Aminal::~Aminal()
{
}
void Aminal::setAge(int ae)
{
    age = ae;
}
int Aminal::getAge()
{
    return age;
}
void Aminal::setSex(string se)
{
    sex = se;
}
string Aminal::getSex()
{
    return sex;
}
4.3 Main.cpp 調(diào)用 Aminal.h
#include <iostream>
#include <Aminal.h>
using namespace std; 
class Dog: public Aminal{
   public:
    string getAgeAndSex()
    {
       auto a = getAge();
       return sex+"-"+ to_string(a);
    }

};
//  執(zhí)行
int main() {
     Dog dg;
     dg.setAge(18);
     dg.setSex("男");
     cout<< "拿到值:"<<dg.getAgeAndSex()<<endl;
      return 0;
}

總結:繼承類可以使用基類中的變量和函數(shù),具體使用哪個根據(jù)你使用的繼承類型有關

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • C++ 繼承 面向對象程序設計中最重要的一個概念是繼承。繼承允許我們依據(jù)另一個類來定義一個類,這使得創(chuàng)建和維護一個...
    蘇州丸子閱讀 3,293評論 0 5
  • 為什么寫這篇文章 本文算作是 《Android 音視頻開發(fā)打怪升級》系列文章的“番外”篇,原本打算將本文的內(nèi)容寫在...
    開發(fā)的貓閱讀 3,798評論 4 38
  • C++類 & 對象 C++在C語言的基礎上增加面向對象編程,也就是說C++支持面向對象程序設計(Java pyth...
    潘雪雯閱讀 818評論 0 1
  • 面向對象程序設計中最重要的一個概念是繼承。繼承允許我們依據(jù)另一個類來定義一個類,這使得創(chuàng)建和維護一個應用程序變得更...
    資深小夏閱讀 178評論 0 0
  • 1. 簡介 繼承 ,表示兩個類的關系,即通過已存在的類來創(chuàng)建一個新的類。其中已存在的類稱為基類,新創(chuàng)建的類則稱為派...
    開源519閱讀 230評論 0 0

友情鏈接更多精彩內(nèi)容