C 學習筆記1

2021-06-07 18:07:23 字數 1280 閱讀 4511

c++中結構體 和 類可以通用,結構體中也可以定義函式.區別:在於訪問控制。

結構體中 預設成員 都是public

類中 預設:私有的

建構函式:

1。建構函式最重要的作用是建立物件本身;

2. c++規定,每個類必須有乙個建構函式,沒有建構函式,就不能建立任何物件

3. 如果沒有提供建構函式,則c++提供乙個預設的不帶引數的建構函式(由c++編譯器提供),完成物件建立

4. 如果定義了乙個建構函式,則編譯器不再提供預設的不帶參的建構函式

析構函式:建構函式的 取反

物件生命週期結束的時候,會呼叫析構函式進行記憶體的**和物件的釋放

建構函式和析構函式 是由系統自動呼叫的

析構函式 不允許 有返回值,不能帶引數,乙個類中只能有乙個析構函式

過載函式: 引數的型別,個數不同,返回值一樣

1.void output();

int output();

不能構成過載,系統不知道呼叫哪乙個

2.void output(int a, int b=4);

void output(int a);

有預設值,也不行。

this指標:

1.this指標 是乙個隱含的指標,它是指向物件本身,代表了物件的位址

2.乙個類所有的物件 呼叫的成員函式都是同一**段。

3.成員函式除了接受引數外,還接受到了乙個物件的位址。pt.output(1,2)

這個位址被乙個隱含的形參this指標所獲取,他等同於執行this=&pt.

所有對資料成員的訪問都 隱含的加上了字首this->.x=0--->this->x=0.

根據傳遞物件的位址,來決定呼叫哪個物件的方法

多型性:虛函式,依據傳遞物件的型別,遲邦定,執行的時候根據物件的型別

在基類的方法前加 virtual,子類有呼叫子類的,沒有去呼叫父類的

純虛函式:乙個類中如果含有,virtual void breathe()=0;則這個類為抽象類,不能直接例項化

子類如果沒有去實現這個函式,則也為抽象類,不能例項化

引用:變數的別名,必須在定義的時候就進行初始化.引用不需要分配記憶體空間

int a = 6;

int &b = a;

b = 5;//a=5

int c = 10;

b = c;//a=10

傳參的時候用的比較多,避免記憶體的拷貝

int change(int &a, int &b);

change(x,y);

C 學習筆記(1)

1.類和結構體的區別 區別在於訪問控制方面,對於結構體而言,所有成員預設都是public,即在外部可以訪問,對於類來說,預設條件下成員函式都是private,不能被外部訪問。2.c 中的建構函式 建構函式最重要的作用是建立物件本身。c 規定,每個類必須有乙個建構函式,沒有它,就不能建立任何物件。乙個...

C 學習筆記1

一,類的最基本的函式 乙個類至少有預設建構函式,拷貝建構函式,拷貝構造運算子,和析構函式四個最基本的函式,在下面的例子中將對這些函式進行講解。如下 includeusing namespace std class superone superone superone void superone se...

C 學習筆記1

1.this 指標。當前物件的位址。只能在類的成員函式中呼叫。類和物件。類就像定義的結構體型別,物件就是該型別定義的變數。在class和nameplace中使用 c 中類和結構體 在c 中只有兩點區別 class中預設的成員訪問許可權是private的,而struct中則是public的。從clas...