C++繼承基礎(chǔ)概念詳解
C++編程語言同樣也具有面向?qū)ο蟮南嚓P(guān)特性。那么它都具有哪些特點呢?在這里我們就為大家詳細介紹一下有關(guān)C++繼承的一些基本特性,希望能幫助大家對這一語言有一個詳細的了解。#t#
1.面向?qū)ο蠹夹g(shù)的基本概念是什么?
對象,類和繼承。
2.虛函數(shù)與多態(tài)
虛函數(shù)就是允許被其子類重新定義的成員函數(shù)。而子類重新定義父類虛函數(shù)的做法,被稱為“覆蓋”(override)。
多態(tài)性是允許你將父對象設(shè)置成和它一個或更多的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當前賦值給它的子對象以不同的方式運作。簡單的說,就是:允許將子類類型的指針賦值給父類類型的指針。多態(tài)性在C++中是通過虛函數(shù)實現(xiàn)的。
3.多態(tài)的作用是什么?
封裝可以隱藏實現(xiàn)細節(jié),使得代碼模塊化;C++繼承可以擴展已存在的代碼模塊(類);它們的目的都是為了代碼重用。而多態(tài)則是為了實現(xiàn)另一個目的——接口重用!
4.接口
C++實際沒有接口這個關(guān)鍵字,他是用抽象類的純虛函數(shù)來實現(xiàn)的。
5.關(guān)于類
類的私有內(nèi)部表示被稱為是封裝的(encapsulated),而類的共有部分被稱為類接口(class interface)。
共有成員:在程序的任何地方都可以被訪問。實行信息隱藏的類將其public成員限制在成員函數(shù)上。要訪問成員函數(shù),必須要定義類對象。
私有成員:只能被成員函數(shù)和類的友元訪問,實行信息隱藏的類把其數(shù)據(jù)成員聲明為private。
被保護成員:對派生類就像public一樣,對其他程序表現(xiàn)的像private一樣。在無C++繼承的類中,protected和private控制符是沒有差別的。
6.共有繼承,私有繼承,保護繼承
在公有繼承時,派生類的對象可以訪問基類中的公有成員,派生類的成員函數(shù)可以訪問基類中的公有成員和保護成員。
在私有繼承時,基類成員對派生類對象來說,基類的所有成員都是不可見的。
對派生類來說,基類的公有成員和protected成員是可見的,可以用成員函數(shù)來訪問。
私有繼承意味著基類的成員,不能被后來的類再繼承了。
在保護C++繼承時,基類的共有成員和保護成員都作為派生類的保護成員,這意味著它們可以被“后來從該類派生的類”訪問,但不能在層次結(jié)構(gòu)之外被訪問。
7.虛函數(shù)繼承與虛擬繼承
這兩個概念很容易混淆。
虛函數(shù)繼承,其實就是虛函數(shù)。只不過虛函數(shù)肯定是用在C++繼承中,不然也沒有必要存在了。它是指一個動態(tài)綁定的過程。
虛擬繼承是多重繼承中特有的概念,它是指子類中只保留父類的父類……中的一個變量,從而不會使子類中包含父類同一個成員多次。