C 學習筆記(二)類和物件基礎

2021-10-08 18:20:07 字數 1795 閱讀 4016

成員函式 注意::兩個冒號

int car::

size()

函式size是car類的成員函式,只能通過物件、物件指標、物件引用才能呼叫。

private:私有成員

public:公有成員

protected:保護成員

(1)類成員函式的內部可訪問:當前物件和同類其他物件的全部屬性,函式。

(2)類的成員函式以外可訪問該類公有成員。

成員函式可以過載和引數預設,但要避免二義性(無法辨別是函式預設還是過載)

c1ass location (

private

:int х,y;

public

:void

init

(int x =0,

int y=0)

;void

valuex

(int val=

0) {x=val;}

intvaluex

() {return x;}]

; location a;

a.valuex()

;//編譯錯誤,編譯器無法判斷呼叫哪個valuex

(1)成員函式的一種,名字與類名相同,可以有引數,不能有返回值。

(2)對物件進行初始化,給成員變數賦初值。

class

complex {

private

:double real, imag;

public

:complex

(double r,

double i=0)

;};complex::

complex

(double r,

double i)

complex c1;

//error,缺少枸造函式的引數

complex *pc =

new complex;

//error, 缺少引數

complex c1(2

);// ok

complex с1(2

,4),

c2(3,

5);//ok

complex *pc =

newcomplex(3

,4);

//ok

(3)可以有多個建構函式,根據函式過載確定。

(1)x::x(const x &) 不寫則預設生成。

complex c1;

//無參建構函式初始化

complex c2

(c1)

;//複製建構函式初始化

complex c2 = c1;

//初始化,非賦值

(2)呼叫複製建構函式情況:

一、物件需要另乙個物件進行初始化

二、函式引數是類a物件,複製建構函式被呼叫。

三、函式返回值是類a物件,複製建構函式被呼叫。

(3)物件間賦值不呼叫複製建構函式。

(4)使用常量引用引數,避免由複製建構函式帶來的巨大開銷。

(1)只有乙個引數且不是複製建構函式。

(2)自動呼叫,建立無名的臨時物件或臨時變數。

(1)名字與類名都相同,前面加~,沒有引數和返回值,乙個類只有乙個析構函式。

(2)delete時呼叫析構函式。

(3)析構函式在物件作為函式返回值返回後被呼叫。

(4)靜態變數生命週期為整個程式執行,因此整個程式退出時才會呼叫析構函式。

歡迎來我的小站玩吖~

嘉州海棠

python基礎學習筆記(二)類和物件

class bird object def init self,sound magic mehod 前後兩個下劃線 如 add self.sound sound dict print init sound sound def chirp self self 該函式可在同一類中被呼叫 print bi...

C 學習筆記 二 類與物件

四.建立物件的2種方式 類由函式成員和資料成員組成,資料成員一般宣告為私有,私有和保護成員不能通過物件直接訪問。但是可以通過函式成員對私有資料成員進行操縱。訪問限定符 access specifier 有三種 例子 includeusing namespace std class cgoods ma...

C 學習 二 類和物件 1

class struct classname class為定義類的關鍵字,classname為類的名字,中為類的主體,注意類定義結束時後面分號。類中的元素稱為類的成員 類中的資料稱為類的屬性或者成員變數 類中的函式稱為類的方法或者成員函式 c 中struct和class的區別是什麼?c 需要相容c語...