類和物件 四個預設成員函式 運算子過載

2021-08-03 03:01:27 字數 3053 閱讀 4400

類的定義:類(class)實際上是某種型別的物件變數和方法的原型.類是從一些具有相同屬性或功能的具體例項中抽象出共有的一些屬性。

類是乙個新的資料型別,它和結構體有點相似,是由不同資料型別組成的集合體,但類要比結構體增加了運算元據的行為,這個行為就是函式,還有乙個區別就是類內存在類成員訪問的修飾限定符。

·class是定義類結構體的關鍵字,花括號內被稱為類體或類空間

·類名是乙個新的資料型別,通過類名可以宣告物件

·類的成員有函式和資料兩種型別

·花括號內是定義和宣告類成員的地方,關鍵字public,private,protected是類成員的訪問限定符

注意:定義類結構體和定義結構體時花括號後要有分號

定義乙個簡單的類

class person //類名

public : //成員變數

char*_name;

char*_ ***;

int _age; // 年齡

};void test ()

成員函式的宣告和定義

在類內定義成員函式

class person

;

類外定義成員函式

class person

public:

char*_name;

char*_***;

int _age;

};person::void person display()//類外定義需要加限定域

data(int year,int month,int day)//帶參建構函式

data(int year=2017,int month=03,int day=09)//預設引數的建構函式

data(int year=z017,int month=06))//半預設引數的建構函式

private:

int_name;

int_***;

int _age;

};void testdate1()

(2)拷貝建構函式建立物件時使用同類物件來進行初始化,這時所用的建構函式稱為拷貝建構函式(copy constructor),拷貝建構函式是特殊的建構函式。

特徵:

· 拷貝建構函式其實是乙個建構函式的過載。

·拷貝建構函式的引數必須使用引用傳參,使用傳值方式會引發無窮遞迴呼叫。

· 若未顯示定義,系統會預設預設的拷貝建構函式。預設的拷貝建構函式會,依次拷貝類成員進行初始化。

下面來實現乙個拷貝建構函式

class  data

data(const data &d)//拷貝建構函式

private:

int _year ;

int _month ;

int _day ;

};void testdate1 ()

(3)析構函式當乙個物件的生命週期結束時,c++編譯系統會自動呼叫乙個成員函式,這個特殊的成員函式即析構函式(destructor)

建構函式是特殊的成員函式,其特徵如下:

·析構函式在類名加上字元~

·析構函式無引數無返回值

·乙個類有且只有乙個析構函式。若未顯示定義,系統會自動生成預設的析構函式。 · 物件生命週期結束時,c++編譯系統系統自動呼叫析構函式。

·注意析構函式體內並不是刪除物件,而是做一些清理工作

class date 

private :

int _year ;

int _month ;

int _day ;

};class array

// 這裡的析構函式需要完成清(shi)理(fang)工(kong)作(jian)。

} private :

int* _ptr ;

};

運算子的過載運算子過載特徵:

operator+ 合法的運算子 構成函式名(過載《運算子的函式名:operator< ),整個語句沒有返回值型別,型別名就代表返回值型別。

過載運算子以後,不能改變運算子的優先順序/結合性/運算元個數。

5個c++不能過載的運算子:

. (成員訪問運算子)

.* (新成員指標訪問運算子)

::(域運算子)

sizeof (sizeof求值運算子)

?:(條件運算子)

(4)賦值運算子過載

拷貝建構函式是建立的物件,使用乙個已有物件來初始化這個準備建立的物件。 賦值運算子的過載是對乙個已存在的物件進行拷貝賦值。

運算子實際上是乙個函式,運算子的過載即是函式的過載。

date& operator=(const

date& d)

return *this;

}

過載運算子的運算

對於兩個整型變數相加,使用者可以調換兩個加數的位置,但通過過載運算子實現兩個不同型別的物件相加,則不可以。

//前置++

complex &operator++()

//後置++

complex &operator++(int)

//過載賦值運算子

complex &operator=(int year)

3.整理隱含的this指標等等,及對運算子過載背後做的事情。

c 類和物件 四個預設成員函式 運算子過載

類的宣告和定義 c 中類的定義一般分為類的宣告部分和類的實現部分。類的宣告部分用來說明該類中的成員 資料成員,成員函式 告訴使用者 幹什麼 類的實現部分用來定義成員函式,該函式用來對資料成員進行操作,告訴使用者 怎麼做 類定義的形式 class 類名 類的宣告部分 各成員函式的實現 類的實現部分 實...

四個預設成員函式和運算子過載

1.類的定義 在c 中,用 類 描述 物件 所謂的物件是指現實世界中的一切事物。類是建立物件的模板,乙個類可以建立多個物件,每個物件都是類的乙個具體例項,擁有類的成員變數和成員函式。類的組成 資料 成員變數 和程式 成員函式 例子 class 1 建構函式 私有成員變數要對它們進行初始化,必須用乙個...

C 類和物件1 四個預設成員函式 運算子過載

1 整理類和物件的基礎知識,如類的定義,訪問限定符,物件導向封裝性,物件的大小計算等等。2 整理四個預設成員函式及運算子過載相關知識 3 整理隱含的this指標等等,及對運算子過載背後做的事情。c 不是純物件導向語言,而是基於物件導向的語言 三種訪問限定符 public成員可以從類外部直接訪問,pr...