類和物件第三講

2021-06-26 05:41:02 字數 1760 閱讀 3556

類和物件第三講

還是先來繼續介紹建構函式,今天想談談帶引數的建構函式。例:求乙個長寬高分別為(1)12

,25,30。(2

)15,30,21.

的長方體的體積。

#include using namespace std;

class box

;box::box(int h1,int w1,int l1)

void box::v_box()

介紹建構函式的過載

#include using namespace std;

class box

;box::box()

box::box(int h1,int w1,int l1)

void box::v_box()

;box::box(int h,int w,int l)

int box::v_box()

int main()

{ box b1; //長寬高都是預設值10

cout<<"the volume of b1 is : "<

需要說明一下幾點:

(1)應該在宣告建構函式時指定預設值,而不是在定義建構函式時指定預設值。

(2)在宣告建構函式時,形參名可以省略。即:box(int =10,int =10,int =10);

(3)乙個類只能有乙個預設建構函式!也就是說,可以不使用引數而呼叫的建構函式,乙個類只能有乙個。

(4)在乙個類中定義了全部是預設引數的建構函式後,不能在定義過載建構函式。

比如:box(

int =10,int =10,int 10

);    //

指定全部為預設引數

box();            //宣告無參的建構函式,是過載建構函式

box(int ,int ); //宣告有兩個引數的建構函式,是過載建構函式

box b1;                //  是呼叫第乙個還是第二個?

box b2(15,30);          //  是第乙個還是第三個?

析構函式

首先,西溝函式是乙個特殊的成員函式,他的作用與建構函式想法,他的名字是類名的前面加乙個「~

」。在c++中「~

」是位取反運算子,所以析構函式與建構函式的作用相反。

析構函式的作用不是刪除物件,而是在撤銷物件占用的記憶體之前完成一些清理工作。

析構函式不返回任何值,沒有函式型別,也沒有引數。因為無引數,所以不能被過載。乙個類可以有多個析構函式,但是只能有乙個建構函式。

析構函式的主要作用是被使用者用來執行「使用者希望在最後一次石洞物件之後所執行的任何操作」。

舉乙個包含析構和建構函式的程式。

#include #include using namespace std;

class myclass

{public:

myclass(int n,string nam,char s)

{num=n;

name=nam;

***=s;

cout<<"建構函式"《需要記住的是:先構造的後析構,後構造的先析構。

歸納一下什麼時候呼叫建構函式和析構函式:

(1)建構函式在檔案中的所有函式執行之前呼叫,當main

函式執行完畢或呼叫

exit

函式時(此時程式終止),呼叫析構函式。

第三講 前置知識

啥是前置的知識?應該是一種粗略的大概的,對其進行解。就像平時玩戲,要知道這個遊戲有啥子背景,講的是啥事兒,如何去玩它。包括遊戲中各類的圖示代表什麼個意思,初期對其進行初步的了解。說的好像你很屌的樣子,再屌又咋滴,還不是屌絲乙個,光棍一條,哈哈!你說我,老大咱都要各自照照鏡先吧。我已經夠青出於蘭了,你...

Java基礎第三講

一.運算子 1.邏輯運算子 一般用於連線boolean型別的表示式或值 並且 有false則false 或者 有true則true 非 非false則true,非true則false 偶數個不會改變本身 異或 結果相同為false,結果不同則為true 短路與 與 的區別 結果一樣,具有短路效果,如...

第三講 Docker 安裝

我們將在centos linux上安裝docker。如果沒有centos系統,你可以使用虛擬機器virtual box來安裝centos,可參考下面的文章 docker的版本 通常安裝社群版本。系統要求 要安裝docker ce,需要使用centos 7的穩定版本 核心版本必須3.8或之後 注意 必...