類和物件及類中的六個預設的函式

2021-08-14 20:43:26 字數 1571 閱讀 7049

一、物件導向的三大特徵

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 有參的建構函式 這兩個建構函式構成了函式的過載,因為它們...