1. '::'的使用
作用:指示作用域; 用作區分不同地方的相同變數名,用於實現類中的未實現方法。
code:
#includeusing namespace std;
int a;
void test()
void showtime()
void showtime()
3.委託建構函式
目的在於不定義太多的建構函式,所有的建構函式都只用乙個來實現
code:
#includeusing namespace std;
class clock; //委託上乙個clock建構函式實現預設值的構造
void settime(int newh, int newm, int news)
void showtime();
//實現複製建構函式
類名::類(const 類名 &物件名)
**:
#includeusing namespace std;
class point{
public:
point(int xx=0, int yy=0);
point(const point &p);
//析構函式
~point(){
cout《第一次:顯式呼叫複製建構函式,point p2(p1);
第二次:隱式呼叫,當p2傳遞給p時,會先會產生乙個臨時變數,假設為temp;然後呼叫複製建構函式把p2值給temp,整個過程很像point temp(p2);等func1結束,將temp析構;
第三次:隱式呼叫,建立point a(11,11)後,return回來乙個point類,也是先建立乙個臨時變數,也假設為temp;然後呼叫複製建構函式把a值給temp,整個過程很像point temp(a);等return回到主函式,立刻將temp析構;
隱式呼叫時,都是通過乙個臨時無名類的變數,來進行呼叫函式和被調函式間形參和實參的傳遞!!
結果:calling the copy constructor
0:0------------
calling the copy constructor
func1 is runing
0:0object destroyed.
------------
func2 is runing
11:11object destroyed.
------------
11:11object destroyed.
0:0object destroyed.
第三次呼叫複製建構函式不知道為啥不列印除錯資訊- -
可以看出,在func1和func2中,析構函式都將臨時建立的類析構了;並且,在main函式結尾,將p1 p2都析構掉。
C 學習筆記 建構函式
在建立某個類的物件時,由於對該物件的狀態 資料 不很明確,因此需要對其進行初始化。例如,我們要在長方形中建立乙個物件,或者說新建乙個長方形,那麼我們首先要確定它的長和寬,假如我們無法確定它的長和寬,那麼我們是無法構造出乙個長方形來的。例如,我們要構造乙個長方形,由於建構函式要在建立新物件時使用,因此...
C 建構函式詳解
c 類的建構函式詳解 一 建構函式是幹什麼的 class counter private 資料成員 int m value 該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式 由建構函式完成成員的初始化工作 eg counter c1 編譯系統為物件c1的每個資料成員 m value...
c 建構函式詳解
c 類的建構函式詳解 一 建構函式是幹什麼的 class counter private 資料成員 int m value 該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式 由建構函式完成成員的初始化工作 eg counter c1 編譯系統為物件c1的每個資料成員 m value...