一 不同的繼承方式會改變繼承成員的存取屬性
public 修飾的成員變數、方法 在類別的內部和外部都可以使用。
protected 修飾的成員變數、方法在類別的內部使用,在繼承的子類別中使用,類別的外部不能使用。 (是為了在家族中使用,為了得到繼承!)
private 修飾的成員變數、方法只能在類別的內部使用,不能在類別的外部使用
1)C++中的繼承方式會影響子類別的對外存取屬性
public繼承:父類別成員在子類別中保持原有存取等級
private繼承:父類別成員在子類別中變成private成員
protected繼承:父類別中public成員會變成protected
父類別中protected成員仍然為protected
父類別中private成員仍然為private
2)private成員在子類別中依然存在,但是卻無法存取。不論種方式繼承基底類,派生類別都不能直接使用基底類別的私有成員。
3)C++中子類別對外存取屬性表
父類別成員存取層級
繼承方式
public(继承方式) proteced(继承方式) private(继承方式) public public proteced private proteced proteced proteced private private private private Private
三色原則影響子類別的對外存取屬性
判斷某一句話,能否被存取
1)看呼叫語句,這句話寫在子類別的內部、外部
2)看子類別如何從父類別繼承( public、private、protected)
3)看父類別中的存取層級(public、private、protected)
衍生類別成員存取層級設定的原則
思考:如何當的使用public,protected為成員聲明存取等級?
1、需要被外界存取的成員直接設定為public
2、只能在目前類別中存取的成員設定為private
3、只能在目前類別和子類別中存取的成員設定為protected, protected成員的存取權限介於public和private之間。
二 類型相容性原則
類型相容規則是指在需要基類物件的任何地方,都可以使用公有衍生類別的物件來替代。透過公有繼承,衍生類別得到了基底類別中除建構子、析構函數之外的所有成員。這樣,公有衍生類別實際上就具備了基底類別的所有功能,凡是基底類別能解決的問題,公有衍生類別都可以解決。類型相容規則中所指的替代包含以下情況:
子類別物件可以當作父類別物件使用
子類別物件可以直接賦值給父類別物件
子類別物件可以直接初始化父類別物件
父類別指標可以直接指向子類別物件
父類別參考可以直接引用子類別物件
在替代之後,派生類別物件就可以作為基底類別的物件使用,但是只能使用從基底類別繼承的成員。
類型相容規則是多態性的重要基礎之一。
第一層意義:
1-1 基類指標(引用)指向子類對象
Parent *p = Null; p = &c1; p->printp(); 1-2 指针做函数参数 howToPrint(&p1); howToprint(&c1); 1-3引用做函数参数 howToprint2(p1); howToprint2(c1);
第二層意義
可以讓父類對象,初始化子類對象
Parent p333;
三繼承中的物件模型
問題:如何初始化父類別成員?父類別與子類別的建構子有什麼關係
在子類別物件建構時,需要呼叫父類別建構子對其繼承得來的成員進行初始化
在子類別物件析構時,需要呼叫父類別析構函式對其繼承得來的成員進行清理
繼承中的構造析構調用原則(初始化的時候從上而下,先有爹再有兒子)
3、當父類別的建構子有參數時,需要在子類別的初始化清單中顯示呼叫
4、析構函式呼叫的先後順序與建構子相反
以上就是C++複習要點總結之八-繼承一的內容,更多相關內容請關注PHP中文網(www.php.cn)!

C#在企業級應用、遊戲開發、移動應用和Web開發中均有廣泛應用。 1)在企業級應用中,C#常用於ASP.NETCore開發WebAPI。 2)在遊戲開發中,C#與Unity引擎結合,實現角色控制等功能。 3)C#支持多態性和異步編程,提高代碼靈活性和應用性能。

C#和.NET適用於Web、桌面和移動開發。 1)在Web開發中,ASP.NETCore支持跨平台開發。 2)桌面開發使用WPF和WinForms,適用於不同需求。 3)移動開發通過Xamarin實現跨平台應用。

C#.NET生態系統提供了豐富的框架和庫,幫助開發者高效構建應用。 1.ASP.NETCore用於構建高性能Web應用,2.EntityFrameworkCore用於數據庫操作。通過理解這些工具的使用和最佳實踐,開發者可以提高應用的質量和性能。

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

C#和.NET的結合為開發者提供了強大的編程環境。 1)C#支持多態性和異步編程,2).NET提供跨平台能力和並發處理機制,這使得它們在桌面、Web和移動應用開發中廣泛應用。

.NETFramework是一個軟件框架,C#是一種編程語言。 1..NETFramework提供庫和服務,支持桌面、Web和移動應用開發。 2.C#設計用於.NETFramework,支持現代編程功能。 3..NETFramework通過CLR管理代碼執行,C#代碼編譯成IL後由CLR運行。 4.使用.NETFramework可快速開發應用,C#提供如LINQ的高級功能。 5.常見錯誤包括類型轉換和異步編程死鎖,調試需用VisualStudio工具。

C#是一種由微軟開發的現代、面向對象的編程語言,.NET是微軟提供的開發框架。 C#結合了C 的性能和Java的簡潔性,適用於構建各種應用程序。 .NET框架支持多種語言,提供垃圾回收機制,簡化內存管理。

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。