亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > 什么是構(gòu)造函數(shù)的意思概念介紹應(yīng)用

      什么是構(gòu)造函數(shù)的意思概念介紹應(yīng)用

      時(shí)間: 謝君787 分享

      什么是構(gòu)造函數(shù)的意思概念介紹應(yīng)用

        特別的一個(gè)類可以有多個(gè)構(gòu)造函數(shù) ,可根據(jù)其參數(shù)個(gè)數(shù)的不同或參數(shù)類型的不同來區(qū)分它們,那么你對(duì)構(gòu)造函數(shù)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于的內(nèi)容,希望大家喜歡!

        什么是構(gòu)造函數(shù)

        構(gòu)造函數(shù) ,是一種特殊的方法。主要用來在創(chuàng)建對(duì)象時(shí)初始化對(duì)象, 即為對(duì)象成員變量賦初始值,總與new運(yùn)算符一起使用在創(chuàng)建對(duì)象的語句中。特別的一個(gè)類可以有多個(gè)構(gòu)造函數(shù) ,可根據(jù)其參數(shù)個(gè)數(shù)的不同或參數(shù)類型的不同來區(qū)分它們 即構(gòu)造函數(shù)的重載。

        構(gòu)造函數(shù)的特點(diǎn)

        1.構(gòu)造函數(shù)的命名必須和類名完全相同。在java中普通函數(shù)可以和構(gòu)造函數(shù)同名,但是必須帶有返回值;

        2.構(gòu)造函數(shù)的功能主要用于在類的對(duì)象創(chuàng)建時(shí)定義初始化的狀態(tài)。它沒有返回值,也不能用void來修飾。這就保證了它不僅什么也不用自動(dòng)返回,而且根本不能有任何選擇。而其他方法都有返回值,即使是void返回值。盡管方法體本身不會(huì)自動(dòng)返回什么,但仍然可以讓它返回一些東西,而這些東西可能是不安全的;

        3.構(gòu)造函數(shù)不能被直接調(diào)用,必須通過new運(yùn)算符在創(chuàng)建對(duì)象時(shí)才會(huì)自動(dòng)調(diào)用;而一般的方法是在程序執(zhí)行到它的時(shí)候被調(diào)用的;

        4.當(dāng)定義一個(gè)類的時(shí)候,通常情況下都會(huì)顯示該類的構(gòu)造函數(shù),并在函數(shù)中指定初始化的工作也可省略,不過Java編譯器會(huì)提供一個(gè)默認(rèn)的構(gòu)造函數(shù).此默認(rèn)構(gòu)造函數(shù)是不帶參數(shù)的。而一般的方法不存在這一特點(diǎn);

        5.構(gòu)造函數(shù)有回滾的效果,構(gòu)造函數(shù)拋出異常時(shí),構(gòu)造的是一個(gè)不完整對(duì)象,會(huì)回滾,將此不完整對(duì)象的成員釋放(c++)

        6.當(dāng)一個(gè)類只定義了私有的構(gòu)造函數(shù),將無法通過new關(guān)鍵字來創(chuàng)建其對(duì)象,當(dāng)一個(gè)類沒有定義任何構(gòu)造函數(shù),C#編譯器會(huì)為其自動(dòng)生成一個(gè)默認(rèn)的無參的構(gòu)造函數(shù)。

        構(gòu)造函數(shù)的應(yīng)用

        C++構(gòu)造函數(shù)

        C++語言為類提供的構(gòu)造函數(shù)可自動(dòng)完成對(duì)象的初始化任務(wù),全局對(duì)象和靜態(tài)對(duì)象的構(gòu)造函數(shù)在main()函數(shù)執(zhí)行之前就被調(diào)用,局部靜態(tài)對(duì)象的構(gòu)造函數(shù)是當(dāng)程序第一次執(zhí)行到相應(yīng)語句時(shí)才被調(diào)用。然而給出一個(gè)外部對(duì)象的引用性聲明時(shí),并不調(diào)用相應(yīng)的構(gòu)造函數(shù),因?yàn)檫@個(gè)外部對(duì)象只是引用在其他地方聲明的對(duì)象,并沒有真正地創(chuàng)建一個(gè)對(duì)象。

        C++的構(gòu)造函數(shù)定義格式為:

        class <類名>

        {

        public:

        <類名>(參數(shù)表)

        //...(還可以聲明其它成員函數(shù))

        };

        <類名>::<函數(shù)名>(參數(shù)表)

        {

        //函數(shù)體

        }

        如以下定義是合法的:

        class T

        {

        public:

        T(int a=0){i=a;}//構(gòu)造函數(shù)允許直接寫在類定義內(nèi),也允許有參數(shù)表。

        private:int i;

        };

        如果一個(gè)類中沒有定義任何的構(gòu)造函數(shù),那么編譯器只有在以下三種情況,才會(huì)提供默認(rèn)的構(gòu)造函數(shù):

        1、如果類有虛擬成員函數(shù)或者虛擬繼承父類(即有虛擬基類)時(shí);

        2、如果類的基類有構(gòu)造函數(shù)(可以是用戶定義的構(gòu)造函數(shù),或編譯器提供的默認(rèn)構(gòu)造函數(shù));

        3、在類中的所有非靜態(tài)的對(duì)象數(shù)據(jù)成員,它們對(duì)應(yīng)的類中有構(gòu)造函數(shù)(可以是用戶定義的構(gòu)造函數(shù),或編譯器提供的默認(rèn)構(gòu)造函數(shù))。

        <類名>::<類名>(){},即不執(zhí)行任何操作。
      看過“構(gòu)造函數(shù)的應(yīng)用“的人還看了:

      1.2016高考數(shù)學(xué)必考點(diǎn)掌握

      2.二次函數(shù)在高中階段的應(yīng)用

      3.初三數(shù)學(xué)思維方法

      4.中考數(shù)學(xué)壓軸題常見類型

      5.2016高考數(shù)學(xué)答題方法求函數(shù)值域

      6.2015年計(jì)算機(jī)二級(jí)《C++》考前沖刺試卷

      1415548