一、物件導向的三大特徵
1、封裝
2、繼承
3、多型
二、類和物件的區別
答:類是抽象的,物件是具體的,所以類不占用記憶體,而物件占用記憶體。
三、類和struct的區別
(1)struct中預設為public
(2)類中預設為private
四、生成物件的2步
(1)申請記憶體
(2)使用建構函式進行初始化
五、銷毀物件的2步
(1)呼叫析構函式釋放物件所佔的資源
(2)把記憶體歸還給核心
六、封裝體現在哪?——三個訪問限定符
1、public:任何位置都能訪問(類中、類外)
2、protected:類中、子類中訪問,類外不能訪問
3、private:只能本類中類中訪問,類外不能訪問
七、c++類中6個預設的函式(前四個比較重要)
1、建構函式
(1)函式名與類名相同
(2)無返回值
(3)物件構造時系統自動呼叫對應的建構函式
(4)建構函式可以過載
(5)建構函式可以在類外定義也可以在類內定義
(6)如果類定義中沒有給出建構函式,則c++編譯器自動產生乙個預設的建構函式,但是只要我們定義了乙個建構函式,系統就不會自動生成預設的建構函式 。
(7)無參的建構函式和全預設值的建構函式都認為是預設建構函式,並且預設的建構函式只能有乙個。
class date
date(int year=1990 , int month = 1, int day = 1)//全預設值的建構函式
private:
int myear;//資料成員
int mmonth;
int mday;
};
2、析構函式
(1)析構函式在類名加上字元~
(2)析構函式無引數無返回值。
(3)乙個類只有乙個析構函式,若未顯示定義,系統會自動生成預設的析構函式
(4)物件生命週期結束時,c++編譯系統會自動呼叫析構函式
(5)析構函式體內並不是刪除物件,而是做一些清理工作。比如:釋放物件所佔的資源
3、拷貝建構函式:用乙個已存在的物件構造乙個型別相同的新物件
(1)拷貝建構函式其實是乙個建構函式的過載
(2)拷貝建構函式的引數必須使用引用傳參,使用傳方式會引發無窮遞迴呼叫
(3)若未顯示定義,系統會預設預設的拷貝建構函式。預設的拷貝建構函式, 會依次對拷貝類成員進行初始化
4、賦值運算子的過載函式:用乙個已存在的物件給另乙個已存在的物件進行賦值
實現的步驟:(1)防止自賦值
(2)釋放舊的資源
(3)開闢新的資源並進行賦值
5、取位址操作符的過載函式
6、const修飾的取位址操作符的過載函式
八、建構函式和析構函式的區別
1、建構函式有this指標,析構函式沒有this指標
2、建構函式不能手動呼叫,析構函式可以手動呼叫(釋放堆記憶體)
3、建構函式可以過載,析構函式不能過載
。。。。先寫這麼多吧
類的六個預設成員函式
類的六個預設成員函式 1.建構函式 2.拷貝建構函式 3.析構函式 4.賦值操作符過載 5.取位址操作符過載 6.const修飾的取位址操作符過載 建構函式 是乙個特殊的成員函式,名字與類名相同,建立類型別物件時,由編譯器自動呼叫,在物件的生命週期內隻且只呼叫一次,以保證每個資料成員都有乙個合適的初...
c 類的預設六個成員函式
c 中預設的六個成員函式分別是 建構函式,拷貝建構函式,賦值操作符過載函式,析構函式,取位址操作符過載函式,const修飾的取位址操作符過載函式。一 建構函式 1,建構函式是乙個特殊的成員函式,名字與類同名,建立類型別物件時由編譯器自動呼叫,保證每個資料成員都有乙個合適的初始值,並且在物件的生命週期...
類的六個預設成員函式
如果乙個類中什麼成員都沒有,則就是空類。但是空類中什麼都沒有嗎?其實並不是這樣的,任何類在我們不寫的情況下,都會自動生成下面六個預設成員函式。class date 無參的建構函式 date int year,int month,int day 有參的建構函式 這兩個建構函式構成了函式的過載,因為它們...