中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

php外貿網(wǎng)站模板如何開發(fā)自己的小程序

php外貿網(wǎng)站模板,如何開發(fā)自己的小程序,織夢招商加盟網(wǎng)站源碼,福州電子商務網(wǎng)站建設一、構造函數(shù) 1.什么是構造函數(shù) 構造函數(shù)是特殊的成員函數(shù),需要注意的是,構造函數(shù)雖然名稱叫構造,但是構造函數(shù)的主要任 務并不是開空間創(chuàng)建對象,而是初始化對象。 2.特征 函數(shù)名與類名相同。無返回值。(void 也不行)對象實例化時…

一、構造函數(shù)

1.什么是構造函數(shù)

構造函數(shù)是特殊的成員函數(shù),需要注意的是,構造函數(shù)雖然名稱叫構造,但是構造函數(shù)的主要任 務并不是開空間創(chuàng)建對象,而是初始化對象。

2.特征

  1. 函數(shù)名與類名相同。
  2. 無返回值。(void 也不行)
  3. 對象實例化時編譯器自動調用對應的構造函數(shù)。
  4. 構造函數(shù)可以重載。
class Date
{
public://構造函數(shù)Date(int year ,int month , int day ){_year = year;_month = month;_day = day;}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private:int _year;int _month;int _day;
};int main()
{Date d1(2023, 8, 12);d1.Print();}

除了上面,也可以用多種構造函數(shù),來完成初始化

class Date
{
public://構造函數(shù)Date(int year ,int month , int day ){_year = year;_month = month;_day = day;}//無參構造函數(shù)Date(){_year = 2023;_month = 4;_day = 17;}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private:int _year;int _month;int _day;
};int main()
{Date d1(2023, 8, 12);d1.Print();Date d2;d2.Print();
}

在這里插入圖片描述

但是當這樣寫的時候,就會出現(xiàn)問題

class Date
{
public://全缺省構造函數(shù)Date(int year = 1 ,int month  = 1, int day = 1 ){_year = year;_month = month;_day = day;}//無參構造函數(shù)Date(){_year = 2023;_month = 4;_day = 17;}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private:int _year;int _month;int _day;
};int main()
{Date d1(2023, 8, 12);d1.Print();Date d2;d2.Print();}

在這里插入圖片描述
錯誤原因:對于不帶參數(shù)的對象,既可以調用全缺省構造,也可以調用無參構造,但是編譯器會不知道調用哪一個。

3.默認構造函數(shù)

如果類中沒有顯式定義構造函數(shù),則C++編譯器會自動生成一個無參的默認構造函數(shù),一旦用戶顯式定義編譯器將不再生成。

1、無參構造(沒有形參的構造函數(shù))稱之為默認構造函數(shù)

2、全缺省構造(形參都有缺省值)也稱之為默認構造函數(shù)

3、編譯器自動生成的默認構造函數(shù)

對于編譯器自己生成的,該類中的成員變量會被初始化為隨機值

class Date
{
public:全缺省構造函數(shù)//Date(int year = 1 ,int month  = 1, int day = 1 )//{//	_year = year;//	_month = month;//	_day = day;//}無參構造函數(shù)//Date()//{//	_year = 2023;//	_month = 4;//	_day = 17;//}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private:int _year;int _month;int _day;
};int main()
{/*Date d1(2023, 8, 12);d1.Print();*/Date d2;d2.Print();return 0;
}

在這里插入圖片描述

關于編譯器生成的默認成員函數(shù),很多人會有疑惑:不實現(xiàn)構造函數(shù)的情況下,編譯器會
生成默認的構造函數(shù)。但是看起來默認構造函數(shù)又沒什么用?
對象調用了編譯器生成的默認構造函數(shù),但是對象_year/_month/_day,依舊是隨機值。也就說在這里編譯器生成的默認構造函數(shù)并沒有什么用??
解答:C++把類型分成內置類型(基本類型)自定義類型。內置類型就是語言提供的數(shù)據(jù)類
型,如:int/char…,自定義類型就是我們使用class/struct/union等自己定義的類型,看看
下面的程序,就會發(fā)現(xiàn)編譯器生成默認的構造函數(shù)會對自定類型成員_t調用的它的默認成員
函數(shù)。

class Time
{
public:Time(){cout << "Time()" << endl;_hour = 0;_minute = 0;_second = 0;}
private:int _hour;int _minute;int _second;
};class Date
{
public:全缺省構造函數(shù)//Date(int year = 1 ,int month  = 1, int day = 1 )//{//	_year = year;//	_month = month;//	_day = day;//}無參構造函數(shù)//Date()//{//	_year = 2023;//	_month = 4;//	_day = 17;//}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private://內置類型int _year;int _month;int _day;//自定義類型Time _t;
};int main()
{/*Date d1(2023, 8, 12);d1.Print();*/Date d2;d2.Print();return 0;
}

在這里插入圖片描述
說明:_year,_month,_day都是隨機值,而Time _t這個變量是class Time自定義類型,編譯器會走到Time類中,調用該類的構造函數(shù)。

typedef int STDateType;
class Stack
{
public:Stack(size_t capacity = 4){cout << "Stack()" << endl;_array = (STDateType*)malloc(sizeof(STDateType) * capacity);if (_array == nullptr){perror("malloc fail");return;}_capacity = capacity;_size = 0;}void Push(STDateType x){//CheckCapacity()_array[_size++] = x;}//析構函數(shù)~Stack(){cout << "~Stack()" << endl;free(_array);_array = nullptr;_capacity = _size = 0;}
private:STDateType* _array;int _capacity;int _size;
};class MyQueue
{Stack _pushST;Stack _popST;};int main()
{MyQueue q;return 0;
}

在這里插入圖片描述

對于MyQueue來說,成員變量都為自定義類型,編譯時會去調用Stack中的構造函數(shù)

二、析構函數(shù)

1.定義

析構函數(shù)與構造函數(shù)功能相反,析構函數(shù)不是完成對對象本身的銷毀,局部對象銷毀工作是由編譯器完成的。而對象在銷毀時會自動調用析構函數(shù),完成對象中資源的清理工作。

2.特性

  1. 析構函數(shù)名是在類名前加上字符 ~。
  2. 無參數(shù)無返回值類型。
  3. 一個類只能有一個析構函數(shù)。若未顯式定義,系統(tǒng)會自動生成默認的析構函數(shù)。注意:析構 函數(shù)不能重載。
  4. 對象生命周期結束時,C++編譯系統(tǒng)系統(tǒng)自動調用析構函數(shù)。
typedef int STDateType;
class Stack
{
public:Stack(size_t capacity = 4){cout << "Stack()" << endl;_array = (STDateType*)malloc(sizeof(STDateType) * capacity);if (_array == nullptr){perror("malloc fail");return;}_capacity = capacity;_size = 0;}void Push(STDateType x){//CheckCapacity()_array[_size++] = x;}//析構函數(shù)~Stack(){cout << "~Stack()" << endl;free(_array);_array = nullptr;_capacity = _size = 0;}
private:STDateType* _array;int _capacity;int _size;
};class MyQueue
{Stack _pushST;Stack _popST;};int main()
{Stack s;s.Push(1);return 0;
}

析構函數(shù)的調用是在執(zhí)行return 0后,函數(shù)即將銷毀時自動調用它,然后堆區(qū)空間就會被釋放,且其他變量清零。

4.默認析構類型

默認析構函數(shù)與默認構造函數(shù)同理,都是我們不生成時,編譯器自動生成一個析構函數(shù),但編譯器生成的也只能處理一些簡單類型的成員變量,例如日期類:

class Date
{
public://全缺省構造函數(shù)Date(int year = 1 ,int month  = 1, int day = 1 ){_year = year;_month = month;_day = day;}無參構造函數(shù)//Date()//{//	_year = 2023;//	_month = 4;//	_day = 17;//}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private://內置類型int _year;int _month;int _day;//自定義類型Time _t;
};int main()
{Date d1(2023, 8, 13);return 0;
}

對于復雜類型的成員變量,編譯器自動生成的析構函數(shù)并不能完成最后的清理工作,比如:對于堆區(qū)空間的生成…所以還需要自己去寫析構函數(shù)

http://www.risenshineclean.com/news/63799.html

相關文章:

  • wordpress 文檔導入樹枝seo
  • 酒店網(wǎng)站設計的目的和意義如何在百度上添加店鋪的位置
  • 有關網(wǎng)站建設的書網(wǎng)站提交收錄軟件
  • 來賓網(wǎng)站建設seo網(wǎng)站關鍵詞排名軟件
  • 網(wǎng)站怎么做才 吸引人友情鏈接的網(wǎng)站
  • 多用戶批發(fā)商城aso優(yōu)化平臺
  • 蘇州室內設計學校濟南網(wǎng)站優(yōu)化
  • 廣州市政府網(wǎng)站建設概括電腦版百度
  • 營銷型網(wǎng)站策劃方案網(wǎng)站源碼
  • 個人網(wǎng)站建設與企業(yè)網(wǎng)站營銷方式有哪幾種
  • 自己怎么做獨立網(wǎng)站站內搜索引擎
  • 網(wǎng)站開發(fā)簡易軟件今天新聞頭條最新消息
  • 網(wǎng)站開發(fā)公司對比新開發(fā)的app怎么推廣
  • 功能型網(wǎng)站制作多少錢2019年度最火關鍵詞
  • WordPress板塊加密seo搜索引擎優(yōu)化平臺
  • 唯一做魅惑的網(wǎng)站如何在網(wǎng)上推廣自己的產(chǎn)品
  • 網(wǎng)站降權的原因品牌策劃方案
  • 做音響的是哪個網(wǎng)站南昌搜索引擎優(yōu)化
  • 可以做彩頁的網(wǎng)站企業(yè)品牌類網(wǎng)站有哪些
  • 企業(yè)網(wǎng)站建設多少家如何注冊網(wǎng)址
  • 網(wǎng)站建設中的主要功能西安seo培訓學校
  • 發(fā)新聞稿做新聞源對網(wǎng)站有啥幫助完整企業(yè)網(wǎng)站模板
  • 一家做特賣的網(wǎng)站叫什么seo站外推廣有哪些
  • 電子稅局網(wǎng)站開發(fā)服務項目文檔全球搜鉆是什么公司
  • 做b2b網(wǎng)站銷售怎樣讓客戶找上門如何創(chuàng)建一個網(wǎng)頁
  • 誰有做網(wǎng)站的朋友的V信怎么免費制作網(wǎng)站
  • 公司的網(wǎng)站建設費進入什么科目整合營銷傳播成功案例
  • 做英語教具的網(wǎng)站sem 優(yōu)化軟件
  • 實時街景地圖app廣東seo快速排名
  • 黃山網(wǎng)站建設jidela十大中文網(wǎng)站排名