<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C++面向?qū)ο?一)——類及對(duì)象基礎(chǔ)

      C++面向?qū)ο?一)——類及對(duì)象基礎(chǔ)

      C++是一種面向?qū)ο?OOP)的語言,強(qiáng)調(diào)抽象、封裝、多態(tài)、繼承、可重用性等,類(class)是組成OOP的重要特性。

      類的類型定義

      class關(guān)鍵字一個(gè)類。

      class 類名{
      訪問控制符:
          //成員
      };
      

      成員可以為成員變量、成員函數(shù)等。一般地,將類的成員函數(shù)稱為類的方法

      類似于結(jié)構(gòu)體,在創(chuàng)建類的類型定義時(shí)不會(huì)為成員分配內(nèi)存;僅當(dāng)對(duì)象(類的變量)被定義時(shí)才會(huì)被分配內(nèi)存。

      訪問控制標(biāo)簽

      訪問控制標(biāo)簽限定了外部(位于該類之外)對(duì)類成員的可訪問性,限定范圍為從該標(biāo)簽至下個(gè)標(biāo)簽間的所有成員。

      • public:成員可被外部訪問。
      • private:默認(rèn)標(biāo)簽,成員不可被外部訪問,僅可被內(nèi)部方法和友元函數(shù)訪問。若成員未被指定標(biāo)簽,則其默認(rèn)為private
      • protected:成員不可被外部訪問,僅可被內(nèi)部方法和派生類訪問。

      C++擴(kuò)展了結(jié)構(gòu)體,使其大多數(shù)功能類似于類。唯一不同之處在于,class默認(rèn)標(biāo)簽為privatestruct默認(rèn)標(biāo)簽為public

      對(duì)象的定義

      對(duì)象是類的變量,指類的實(shí)例,定義對(duì)象方法類與定義結(jié)構(gòu)體變量一致。

      • 創(chuàng)建類的類型時(shí)定義對(duì)象:

        int n;
        class temp{
            //member
        }t[n];
        
      • 先創(chuàng)建類的類型再定義對(duì)象:

        int n;
        class temp{
           	//member
        };
        temp t[n];
        

      對(duì)象各自有有自己的數(shù)據(jù),但共享一組方法。

      成員的訪問

      類似于結(jié)構(gòu)體。

      • 直接訪問運(yùn)算符.:作用于對(duì)象上,通過對(duì)象名.成員進(jìn)行訪問。例:

        class temp{
        public:
            int a;
            void fun(int a){
                this->a=a;
            }
        };
        temp t;
        
        t.x;//訪問變量
        t.sum(1,2);//訪問方法
        
      • 間接訪問運(yùn)算符->:作用于對(duì)象指針上,通過對(duì)象指針名->成員進(jìn)行訪問。典例為通過this指針訪問本類中的對(duì)象。

      • 域解析運(yùn)算符:::用于訪問命名空間中的成員。在類中,其為訪問靜態(tài)變量成員,或先聲明后定義的方法中對(duì)方法的定義中,通過類名::方法以標(biāo)識(shí)該方法來自的類。

      方法的實(shí)現(xiàn)

      • 邊聲明邊定義:

        class temp{
            int a;
        public:
            void fun(int a){
                this->a=a;
            }
        };
        
      • 先聲明后定義:定義時(shí)需使用作用域解析運(yùn)算符(::)以標(biāo)識(shí)函數(shù)所屬的類,即類名::函數(shù)名(形參表)

        class temp{
            int a;
        public:
            void fun(int);
        };
        void temp::fun(int a){
            this->a=a;
        }
        

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

      專門用于初始化類中成員變量的函數(shù),其與類名同名,沒有返回值,且必須被public標(biāo)簽修飾。

      當(dāng)類無構(gòu)造函數(shù)時(shí),編譯器會(huì)自動(dòng)為對(duì)象創(chuàng)建空的構(gòu)造函數(shù)。

      構(gòu)造函數(shù)可使用默認(rèn)參數(shù)。若定義了構(gòu)造函數(shù),則在定義對(duì)象時(shí)必須調(diào)用構(gòu)造函數(shù),為無默認(rèn)參數(shù)的其他形參提供實(shí)參。

      • 邊聲明邊定義

        class temp{
            int a;
        public:
            temp(int a){
                this->a=a;
            }
        };
        
      • 先聲明后定義

        class temp{
           int a;
        public:
            temp(int);
        };
        temp::temp(int a){
            this->a=a;
        }
        
      • 定義對(duì)象:定義對(duì)象時(shí)必須調(diào)用構(gòu)造函數(shù),為無默認(rèn)參數(shù)的其他形參提供實(shí)參。

        temp t(10);//隱式調(diào)用
        temp t=temp(10);//顯式調(diào)用
        
      • 構(gòu)造函數(shù)的初始化列表:

        class temp{
            int a,b;
        public:
            temp(int x,int y):a(x),b(y){ }//在形參表后 成員變量名(形參名),表示將形參賦值給成員變量
        };
        

      析構(gòu)函數(shù)

      專門用于銷毀成員的函數(shù)(如經(jīng)過動(dòng)態(tài)分配內(nèi)存得到的成員變量),其名為~類名,沒有返回值,且必須被public標(biāo)簽修飾。

      若成員變量均為塊作用域的局部變量,其將被自動(dòng)銷毀釋放,無需析構(gòu)函數(shù)。

      當(dāng)類無析構(gòu)函數(shù)時(shí),編譯器會(huì)自動(dòng)為對(duì)象創(chuàng)建空的析構(gòu)函數(shù)。

      析構(gòu)函數(shù)無需手動(dòng)顯式調(diào)用,編譯器會(huì)在恰當(dāng)時(shí)機(jī)自動(dòng)隱式調(diào)用。

      • 邊聲明邊定義

        class temp{
        public:
            int *a=NULL;
            temp(){
                a=new int;
            }
            ~temp(){
                delete a;
            }
        };
        
      • 先聲明后定義

        class temp{
            int *a=NULL;
            temp();
            ~temp();
        };
        temp::temp(){
            a=new int;
        }
        temp::~temp(){
            delete a;
        }
        

      注意:以上代碼僅供構(gòu)造函數(shù)與析構(gòu)函數(shù)的示例,實(shí)際上其存在淺拷貝問題。請(qǐng)不要這么使用!

      this指針

      this指針是由編譯器隱式定義的指向當(dāng)前對(duì)象本身的指針,在方法中可用this指針訪問成員,在解決變量命名沖突、繼承和多態(tài)中尤為重要。

      使用方法:this->成員

      class temp{
          int a;
      public:
      	temp(int a){
              this->a=a;
          }    
      };
      

      對(duì)象數(shù)組

      類名 對(duì)象名[對(duì)象個(gè)數(shù)];
      

      若類具有構(gòu)造函數(shù),則必須使用初始化序列表,為每個(gè)對(duì)象調(diào)用構(gòu)造函數(shù)。

      類名 對(duì)象名[對(duì)象個(gè)數(shù)]={類名(實(shí)參表),類名(實(shí)參表),...};//按順序?qū)?yīng)每個(gè)對(duì)象
      

      類作用域

      類中成員都具有類作用域,因此不同類才能使用同名變量及方法,這也導(dǎo)致訪問變量和方法時(shí)必須通過對(duì)象進(jìn)行訪問。

      類模板

      • 類模板類型的定義:

        template<typename 泛型名1,typename 泛型名2,...>
        class 類名{
            //成員
        };
        

        此處<>中的內(nèi)容稱為模板參數(shù)(形參),定義了若干泛型,其中typename為關(guān)鍵字(也可替換為class)。泛型在定義后即可像常規(guī)數(shù)據(jù)類型使用,但定義的所有泛型必須全部使用。

      • 具有模板的類對(duì)象的創(chuàng)建:

        類名<類型名1,類型名2,...>對(duì)象名;
        類名<類型名1,類型名2,...>對(duì)象名(構(gòu)造函數(shù)實(shí)參);//有構(gòu)造函數(shù)
        

        此處<>中的內(nèi)容稱為模板參數(shù)(實(shí)參),用于指定傳入的參數(shù)數(shù)據(jù)類型,編譯器將根據(jù)傳入的類型自動(dòng)生成對(duì)應(yīng)類型的類。

      posted @ 2025-03-29 00:03  椰蘿Yerosius  閱讀(13)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 色偷一区国产精品| 亚洲男人在线天堂| 国产精品美女久久久久久麻豆 | 墨江| 在线看片免费人成视频久网| 国产中文字幕精品在线| 中文字幕亚洲一区二区va在线| 亚洲精品一区二区18禁| 久久精品国产亚洲av麻豆软件| 屁屁影院ccyy备用地址| 欧美精品在线观看视频| 久久99国内精品自在现线| 日韩精品无码一区二区视频 | 国产人妻人伦精品1国产丝袜| 国产欧美一区二区精品性色| 亚洲国产精品无码一区二区三区| 精品无码久久久久久尤物| 亚洲欧美激情在线一区| 黄色网站免费在线观看| 亚洲精品无码久久一线| 日韩精品一卡二卡三卡在线| 久久99精品国产麻豆婷婷| 亚洲精品无码高潮喷水A| 美乳丰满人妻无码视频| 成人性生交大片免费看r老牛网站 中文字幕一区二区三区四区五区 久久久久久毛片免费播放 | 国产午夜亚洲精品国产成人| 好紧好湿太硬了我太爽了视频| 一二三四中文字幕日韩乱码| 欧美www在线观看| 亚洲美免无码中文字幕在线| 97一区二区国产好的精华液| 亚洲欧美精品在线| 国产中文三级全黄| 亚洲日韩久热中文字幕| 国产精品成人午夜久久| 色老头在线一区二区三区| 国产精品免费观在线| 综合亚洲网| 亚洲天堂激情av在线| www插插插无码免费视频网站| 狠狠色丁香婷婷综合尤物|