為了解決對象初始化問題,于是,就提出了構造函數這么一個策略。構造函數有什么特點呢?一,函數名與類名相同。二,構造函數沒有返回值。有如下代碼:
專注于為中小企業提供成都網站設計、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業江夏免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。class Chair{
private:
int legs;
public:
void Setlegs ( int leg ){
this->legs = leg;
}
int Getlegs ( void ){
return this->legs;
}
Chair ( int leg ){
this->legs = leg;
}
};
int main ( int argc, char** argv ){
Chair chair; //編譯器會調用默認構造函數Chair();
Chair chair1 ( 4 ); //調用構造函數Chair( int leg );
Chair chair2 = 4; //調用構造函數Chair ( int leg );
system ( "pause" );
return 0;
}
這段代碼,在類對象被創建后,那么,編譯器會為該對象分配相應的空間大小并調用構造函數。需要注意的是,類對象的聲明并不會為對象分配空間,只是告訴編譯器有這么一個對象存在。
構造函數可以被編譯器自動調用,那構造函數可以手工調用嗎?當然可以。比如,我們創建一個類數組,然后,我們對這個數組進行進行初始化。代碼如下:
#include <stdio.h>
#include <stdlib.h>
class Chair{
private:
int legs;
public:
int Getlegs ( void ){
return this->legs;
}
void Setlegs ( int leg ){
this->legs = leg;
}
Chair ( int leg ){
this->legs = leg;
}
Chair ( void ){
this->legs = 3;
}
};
int main ( int argc, char** argv ){
Chair chair[3] = { Chair ( 4 ), Chair ( 8 ), Chair() };
int i;
for ( i = 0; i < 3; ++i ){
printf ( "%d\n", chair[i].Getlegs() );
}
system ( "pause" );
return 0;
}
運行代碼如下:
除此之外,還有一種手工調用構造函數的方式:
Chair chair = Chair ( 4 );
其實這種手工調用構造函數的方式,也可以說是初始化類對象的另外一種方式。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:構造函數2.0-創新互聯
文章位置:http://m.2m8n56k.cn/article16/dipjdg.html
成都網站建設公司_創新互聯,為您提供面包屑導航、建站公司、外貿網站建設、微信小程序、微信公眾號、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯