国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)

這篇具有很好參考價值的文章主要介紹了<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)

  • ?? 個人簡介:CSDN「博客新星」TOP 10 , C/C++ 領域新星創(chuàng)作者
  • ?? 作 ?? 者:錫蘭_CC ??
  • ?? 專 ?? 欄:從零開始的 c++ 之旅
  • ?? 若有幫助,還請關注?點贊?收藏,不行的話我再努努力??????

前言

c++面向對象三大特性:封裝,繼承,多態(tài)。通過本文我們將了解什么是類的繼承以及繼承的使用。
Q:什么是繼承?
A: 繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。子類的對象擁有其父類全部屬性與服務,稱作子類對父類的繼承。例如,輪船、客輪;人、大人。一個類可以是多個父類的子類,它從多個父類中繼承了屬性與服務,這稱為多繼承。例如,客輪與輪船和客運工具。

一、類的繼承

在學習繼承之前,我們先來了解一下基類和派生類。

1、基類與派生類

我們先來看下面這串代碼:

#include<iostream>
using namespace std;

class Student {
	public:
		int age;
		char *name;
		Student() {
			age = 18;
			name = "Ceylan";
		}
};

class Undergraduate:public Student {
	public:
		int grate;
		Undergraduate():Student() {
			grate = 1;
		}
};

int main() {
	Undergraduate s;
	cout << s.age << endl;
	return 0;
}

在這個例子中,學生類Student就可以作為一個基類,研究生類Undergraduate就是一個派生類。
main函數(shù)中,我們首先用構造函數(shù)進行初始化,研究生類Undergraduate通過公共方法繼承了Student類,也就是繼承 了Student類的成員屬性和方法,就可以輸出Student的成員變量age的值。

2、什么是派生類

Q:什么是派生類?
A: 派生類就是繼承了一個或者多個類的子類。

3、派生類如何定義

Q:派生類如何定義?
A: 參考上文代碼,程序中先定義基類Student,再定義派生類Student繼承基類Student。需要注意,在c++中,繼承可以是多繼承,也就是說派生類可以同時繼承多個類,語法如下所示:

	class Derived:public Base1,public Base2 {
		//...
	}  

4、派生類的特點

  • 派生類擁有基類的所有數(shù)據成員和成員函數(shù)(不包括構造函數(shù)和析構函數(shù))
  • 派生類可以擁有基類沒有的數(shù)據成員和成員函數(shù)
  • 派生類對象可以通過基類的公有函數(shù)訪問基類的私有成員
  • 派生類可以看成是一種特殊的基類,也就是說可以把派生對象當成基類對象使用。

二、派生類的訪問權限與作用

在類名冒號之后, 跟著的關鍵字不同,派生類的訪問權限會有不同。根據關鍵字,可以分為三種情況,公有派生、保護派生、私有派生。

1、公有派生

	class 類名∶public 基類	
	{
  	  // …
	};

公有派生使用public關鍵字來繼承,公有派生的所有基類成員在派生類中保持原有的訪問級別。

#include<iostream>
using namespace std;

class A  
{
	public:
    	void setx(int n) {
 	       x = n;
  	    }
 	    void showx () {
 	       cout << x << endl;
	    }
	public:
		int x;
} ;
class B: private A {
	public:
		void setxy(int n, int m) {
			setx(n);
			y = m;
		}
		void showxy() {
			cout << x << " " << y << endl;
		}
	public:
		int y;
};

int main() {
	B s;
	s.setxy(10,20);
	s.showxy();
}

<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)

2、保護派生

	class 類名∶protected 基類	
	{
  	  // …
	};

保護派生使用protected關鍵字來繼承,保護派生中public成員protected成員、protected成員不變、private 成員不變。

3、私有派生

	class 類名∶private 基類	
	{
  	  // …
	};

私有派生使用private 關鍵字來繼承,私有派生中所有基類成員在派生類中都變?yōu)?code>private成員。

三、派生類的構造函數(shù)與析構函數(shù)

派生類構造函數(shù)和析構函數(shù)的執(zhí)行順序

派生類繼承基類后,當創(chuàng)建派生類對象時,也會調用基類的構造函數(shù)。那么,是先進行基類的構造和析構還是先進行派生類的構造和析構呢?我們來看看下面的代碼案例:

#include<iostream>
using namespace std;

class Base {
	//聲明基類 
	public:
		Base() {
			cout << "Base 類的構造函數(shù)" << endl;
		}
		~ Base() {
			cout << "Base 類的析構函數(shù)" << endl;
		}
};

class Son : public Base {
	public:
		Son() {
			cout << "Son 類的構造函數(shù)" << endl;
		}
		~ Son() {
			cout << "Son 類的析構函數(shù)" << endl; 
		}
}; 

int main() {
	Son s;
	return 0;
} 

執(zhí)行效果:
<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)

通常情況下,當創(chuàng)建派生類對象時, 首先執(zhí)行基類的構造函數(shù), 隨后再執(zhí)行派生類的構造函數(shù)。當結束派生類對象時, 則先執(zhí)行派生類的析構函數(shù), 隨后再執(zhí)行基類的析構函數(shù)。

四、多繼承

Q:什么是多繼承?
A:多繼承是指從多個直接基類中產生派生類的能力,多繼承的派生類繼承了所有基類的成員。
多繼承可能會引發(fā)基類中有同名成員的出現(xiàn),使用時需要加上作用域進行區(qū)分,詳細代碼如下:

#include<iostream>
using namespace std;

class A1 {
	public:
		A1() {
			a = 100;
		}
	public:
		int a;
}; 

class A2 {
	public:
		A2() {
			a = 200;
		}
	public:
		int a;
};

class A3 : public A1,public A2 {
	public:
		A3() {
			a = 300;
		}
	public:
		int a;
};

int main() {
	A3 s;
	cout << s.A1::a << endl;
	cout << s.A2::a << endl;
	cout << s.A3::a << endl;
	return 0;
}

<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)

其他:

更多專欄訂閱:文章來源地址http://www.zghlxwxcb.cn/news/detail-419385.html

  • ?? 【開卷數(shù)據結構】
  • ?? 【備戰(zhàn)藍橋,沖擊省一】
  • ??? ?從零開始的 c++ 之旅
  • ?? 【OpenCV ? c++】計算機視覺

到了這里,關于<c++> 類的繼承 | 基類與派生類 | 構造函數(shù)與析構函數(shù)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C++ | 繼承(基類,父類,超類),(派生類,子類)

    文章參考:https://blog.csdn.net/war1111886/article/details/8609957 一 .繼承中的訪問權限關系 1.基類,父類,超類是指被繼承的類,派生類,子類是指繼承于基類的類.? 2.在C++中使用: 冒號表示繼承,如class A : public B;表示派生類A從基類B繼承而來 3.派生類包含基類的所有

    2024年02月15日
    瀏覽(59)
  • 【C++入門到精通】C++入門 —— 繼承(基類、派生類和多態(tài)性)

    【C++入門到精通】C++入門 —— 繼承(基類、派生類和多態(tài)性)

    前面我們講了C語言的基礎知識,也了解了一些數(shù)據結構,并且講了有關C++的命名空間的一些知識點以及關于C++的缺省參數(shù)、函數(shù)重載,引用 和 內聯(lián)函數(shù)也認識了什么是類和對象以及怎么去new一個 ‘對象’ ,也了解了C++中的模版,以及學習了幾個STL的結構也相信大家都掌握

    2024年02月11日
    瀏覽(31)
  • 頭歌Educoder實驗:C++ 面向對象 - 類的繼承與派生

    第1關:公有繼承 —— 學生信息類 任務描述 本關任務:采用公有繼承設計學生信息類。 相關知識 繼承 繼承是使代碼可以復用的重要手段,也是面向對象程序設計的核心思想之一。簡單的說,繼承是指一個對象直接使用另一對象的屬性和方法。 C++ 中的繼承關系就好比現(xiàn)實生

    2024年02月04日
    瀏覽(77)
  • [C++]構造與毀滅:深入探討C++中四種構造函數(shù)與析構函數(shù)

    [C++]構造與毀滅:深入探討C++中四種構造函數(shù)與析構函數(shù)

    ?個人主頁:北·海 ???CSDN新晉作者 ???歡迎 ??點贊?評論?收藏 ?收錄專欄:C/C++ ??希望作者的文章能對你有所幫助,有不足的地方請在評論區(qū)留言指正,大家一起學習交流!?? 目錄 構造函數(shù)有什么作用? 構造函數(shù)有什么特點 構造函數(shù)的種類 一.默認構造函數(shù) 1.什么是

    2024年02月09日
    瀏覽(49)
  • 【零基礎學習C++】構造函數(shù)與析構函數(shù)

    【零基礎學習C++】構造函數(shù)與析構函數(shù)

    個人主頁:【??個人主頁】 系列專欄:【??系列專欄】 期末復習筆記,感興趣的可以收藏 C++用以初始化對象的數(shù)據成員的函數(shù) 構造函數(shù)要注意的知識點: 構造函數(shù)是沒有返回值類型的。 構造函數(shù)的函數(shù)名必須 與類名一致。 構造函數(shù)并不是由我們手動調用的, 構造函數(shù)

    2024年02月11日
    瀏覽(30)
  • 【C++】類和對象(中)之構造函數(shù)與析構函數(shù)

    【C++】類和對象(中)之構造函數(shù)與析構函數(shù)

    ?? 樊梓慕: 個人主頁 ??? 個人專欄: 《C語言》《數(shù)據結構》《藍橋杯試題》《LeetCode刷題筆記》《實訓項目》《C++》 ?? 每一個不曾起舞的日子,都是對生命的辜負 目錄 前言 1.構造函數(shù) 1.1概念 1.2特性 2.析構函數(shù) 2.1概念 2.2特性 我們繼續(xù)學習類和對象,今天主要講解構造

    2024年02月07日
    瀏覽(20)
  • 基于C/C++將派生類賦值給基類的詳細講解

    目錄 將派生類對象賦值給基類對象 將派生類指針賦值給基類指針

    2024年02月08日
    瀏覽(17)
  • C++中基類和派生類的析構函數(shù)

    C++中基類和派生類的析構函數(shù)

    和構造函數(shù)類似,析構函數(shù)也不能被繼承。與構造函數(shù)不同的是,在派生類的析構函數(shù)中不用顯式地調用基類的析構函數(shù),因為每個類只有一個析構函數(shù),編譯器知道如何選擇,無需程序員干涉。 另外析構函數(shù)的執(zhí)行順序和構造函數(shù)的執(zhí)行順序也剛好相反: 創(chuàng)建派生類對象

    2024年02月10日
    瀏覽(22)
  • C++繼承體系中,基類析構函數(shù)請加上virtual,設置為虛函數(shù)

    C++繼承體系中,基類析構函數(shù)請加上virtual,設置為虛函數(shù)

    為什么建議在存在繼承體系時刻我們的類的析構函數(shù)加上virtual呢? 大家看段代碼。 ?咋一看,沒什么毛病這段代碼,讓我們畫圖理解下。 紫框中的前4個字節(jié)指向new開辟的空間。 我們知道,當基類A指針指向基類B時候會發(fā)生切片 ? ?當我們delete pa時候,編譯器不會調用B類的

    2024年02月16日
    瀏覽(22)
  • 【C++】類與對象(構造函數(shù)、析構函數(shù)、拷貝構造函數(shù)、常引用)

    【C++】類與對象(構造函數(shù)、析構函數(shù)、拷貝構造函數(shù)、常引用)

    ?????個人主頁: 秦jh__https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343 ???系列專欄: ? 目錄 類的6個默認成員函數(shù) 構造函數(shù) 特性 ?析構函數(shù) 特性 ?析構的順序 拷貝構造函數(shù) 特性 常引用 ???? ?? hello! 各位鐵子們大家好哇。 ? ? ? ? ? ? ?今日更新了類與對象的構造函數(shù)、

    2024年02月21日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包