類和物件第三講
還是先來繼續介紹建構函式,今天想談談帶引數的建構函式。例:求乙個長寬高分別為(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或之後 注意 必...