構(gòu)造函數(shù):
特性:
1.構(gòu)造函數(shù)的命名必須和類名完全相同;在java中普通函數(shù)可以和構(gòu)造函數(shù)同名,但是必須帶有返回值。
2.構(gòu)造函數(shù)的功能主要用于在類的對象創(chuàng)建時(shí)定義初始化的狀態(tài)。它沒有返回值,也不能用void來修飾。這就保證了它不僅什么也不用自動(dòng)返回,而且根本不能有任何選擇。而其他方法都有返回值,即使是void返回值。盡管方法體本身不會(huì)自動(dòng)返回什么,但仍然可以讓它返回一些東西,而這些東西可能是不安全的。
3.構(gòu)造函數(shù)不能被直接調(diào)用,必須通過new運(yùn)算符在創(chuàng)建對象時(shí)才會(huì)自動(dòng)調(diào)用;而一般的方法是在程序執(zhí)行到它的時(shí)候被調(diào)用的。
4.當(dāng)定義一個(gè)類的時(shí)候,通常情況下都會(huì)顯示該類的構(gòu)造函數(shù),并在函數(shù)中指定初始化的工作也可省略。
5.當(dāng)一個(gè)類只定義了私有的構(gòu)造函數(shù),將無法通過new關(guān)鍵字來創(chuàng)建其對象,當(dāng)一個(gè)類沒有定義任何構(gòu)造函數(shù),編譯器會(huì)為其自動(dòng)生成一個(gè)默認(rèn)的無參的構(gòu)造函數(shù)。
作用:
構(gòu)建對象
初始化對象
類型轉(zhuǎn)換
構(gòu)造函數(shù)定義格式為:
class <類名>
{
public:
<類名>(參數(shù)表)
};
<類名>::<函數(shù)名>(參數(shù)表)
{
//函數(shù)體
}
如以下定義是合法的:
class T
{
public:
T(int a=0){i=a;}//構(gòu)造函數(shù)允許直接寫在類定義內(nèi),也允許有參數(shù)表。
private:int i;
};
指針:
用處:一個(gè)對象的this指針并不是對象本身的一部分,不會(huì)影響sizeof(對象)的結(jié)果。this作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員的時(shí)候,編譯器會(huì)自動(dòng)將對象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。也就是說,即使你沒有寫上this指針,編譯器在編譯的時(shí)候也是加上this的,它作為非靜態(tài)成員函數(shù)的隱含形參,對各成員的訪問均通過this進(jìn)行。
2. this只能在成員函數(shù)中使用。
全局函數(shù),靜態(tài)函數(shù)都不能使用this。
實(shí)際上,成員函數(shù)默認(rèn)第一個(gè)參數(shù)為T* const register this。
如:
class A{public: int func(int p){}};
其中,func的原型在編譯器看來應(yīng)該是: int func(A* const register this, int p);
由此可見,this在成員函數(shù)的開始前構(gòu)造的,在成員的結(jié)束后清除。
這個(gè)生命周期同任一個(gè)函數(shù)的參數(shù)是一樣的,沒有任何區(qū)別。
當(dāng)調(diào)用一個(gè)類的成員函數(shù)時(shí),編譯器將類的指針作為函數(shù)的this參數(shù)傳遞進(jìn)去。如:
A a;
a.func(10);
此處,編譯器將會(huì)編譯成: A::func(&a, 10);
關(guān)于this 指針這里有一個(gè)問題,this指針如何傳遞給類中函數(shù)的?
this是通過函數(shù)參數(shù)的首參數(shù)來傳遞的。this指針是在調(diào)用之前生成的。類實(shí)例后的函數(shù),沒有這個(gè)說法。類在實(shí)例化時(shí),只分配類中的變量空間,并沒有為函數(shù)分配空間。自從類的函數(shù)定義完成后,它就在那兒,不會(huì)跑的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站題目:this指針和構(gòu)造函數(shù)-創(chuàng)新互聯(lián)
標(biāo)題來源:http://jinyejixie.com/article8/djciop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、云服務(wù)器、電子商務(wù)、微信公眾號、全網(wǎng)營銷推廣、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容