1. gzyueqian
      18529173453

      類和類的定義

      更新時(shí)間: 2007-05-27 01:39:11來(lái)源: 粵嵌教育瀏覽量:852


        在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,有經(jīng)常接觸類、對(duì)象等專業(yè)名詞;到底什么是類、什么是對(duì)象呢?在程序又是怎樣運(yùn)用呢?類是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,它實(shí)際是一種新的數(shù)據(jù)類型,也是實(shí)現(xiàn)抽象類型的工具,因?yàn)轭愂峭ㄟ^(guò)抽象數(shù)據(jù)類型的方法來(lái)實(shí)現(xiàn)的一種數(shù)據(jù)類型。類是對(duì)某一類對(duì)象的抽象;而對(duì)象是某一種類的實(shí)例,因此,類和對(duì)象是密切相關(guān)的。沒(méi)有脫離對(duì)象的類,也沒(méi)有不依賴于類的對(duì)象。

        什么是類

        類是一種復(fù)雜的數(shù)據(jù)類型,它是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。這有點(diǎn)像C語(yǔ)言中的結(jié)構(gòu),不同的就是結(jié)構(gòu)沒(méi)有定義所說(shuō)的“數(shù)據(jù)相關(guān)的操作”,“數(shù)據(jù)相關(guān)的操作”就是我們平常經(jīng)常看到的“方法”,因此,類具有更高的抽象性,類中的數(shù)據(jù)具有隱藏性,類還具有封裝性。

        類的結(jié)構(gòu)(也即類的組成)是用來(lái)確定一類對(duì)象的行為的,而這些行為是通過(guò)類的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和相關(guān)的操作來(lái)確定的。這些行為是通過(guò)一種操作接口來(lái)描述的(也即平時(shí)我們所看到的類的成員函數(shù)),使用者只關(guān)心的是接口的功能(也就是我們只關(guān)心類的各個(gè)成員函數(shù)的功能),對(duì)它是如何實(shí)現(xiàn)的并不感興趣。而操作接口又被稱為這類對(duì)象向其他對(duì)象所提供的服務(wù)。

        類的定義格式

        類的定義格式一般地分為說(shuō)明部分和實(shí)現(xiàn)部分。說(shuō)明部分是用來(lái)說(shuō)明該類中的成員,包含數(shù)據(jù)成員的說(shuō)明和成員函數(shù)的說(shuō)明。成員函數(shù)是用來(lái)對(duì)數(shù)據(jù)成員進(jìn)行操作的,又稱為“方法”。實(shí)現(xiàn)部分是用來(lái)對(duì)成員函數(shù)的定義。概括說(shuō)來(lái),說(shuō)明部分將告訴使用者“干什么”,而實(shí)現(xiàn)部分是告訴使用者“怎么干”。

      類的一般定義格式如下:

      class <類名>
      {
      public:
      <成員函數(shù)或數(shù)據(jù)成員的說(shuō)明>
      private:
      <數(shù)據(jù)成員或成員函數(shù)的說(shuō)明>
      };
      <各個(gè)成員函數(shù)的實(shí)現(xiàn)>

        下面簡(jiǎn)單地對(duì)上面的格式進(jìn)行說(shuō)明:class是定義類的關(guān)鍵字,<類名>是種標(biāo)識(shí)符,通常用T字母開(kāi)始的字符串作為類名。一對(duì)花括號(hào)內(nèi)是類的說(shuō)明部分(包括前面的類頭)說(shuō)明該類的成員。類的成員包含數(shù)據(jù)成員和成員函數(shù)兩部分。從訪問(wèn)權(quán)限上來(lái)分,類的成員又分為:公有的(public)、私有的(private)和保護(hù)的(protected)三類。公有的成員用public來(lái)說(shuō)明,公有部分往往是一些操作(即成員函數(shù)),它是提供給用戶的接口功能。這部分成員可以在程序中引用。私有的成員用private來(lái)說(shuō)明,私有部分通常是一些數(shù)據(jù)成員,這些成員是用來(lái)描述該類中的對(duì)象的屬性的,用戶是無(wú)法訪問(wèn)它們的,只有成員函數(shù)或經(jīng)特殊說(shuō)明的函數(shù)才可以引用它們,它們是被用來(lái)隱藏的部分。保護(hù)類(protected)將在以后介紹。

        關(guān)鍵字public,private和protected被稱為訪問(wèn)權(quán)限修飾符或訪問(wèn)控制修飾符。它們?cè)陬愺w內(nèi)(即一對(duì)花括號(hào)內(nèi))出現(xiàn)的先后順序無(wú)關(guān),并且允許多次出現(xiàn),用它們來(lái)說(shuō)明類成員的訪問(wèn)權(quán)限。

        其中,<各個(gè)成員函數(shù)的實(shí)現(xiàn)>是類定義中的實(shí)現(xiàn)部分,這部分包含所有在類體內(nèi)說(shuō)明的函數(shù)的定義。如果一個(gè)成員函數(shù)的類體內(nèi)定義了,實(shí)現(xiàn)部分將不出現(xiàn)。如果所有的成員函數(shù)都在類體內(nèi)定義,則實(shí)現(xiàn)部分可以省略。

      下面給出一個(gè)日期類定義的例子:

      class TDate
      {
      public:
      void SetDate(int y, int m, int d);
      int IsLeapYear();
      void Print();
      private:
      int year, month, day;
      };

      //類的實(shí)現(xiàn)部分
      void TDate::SetDate(int y, int m, int d)
      {
      year = y;
      month = m;
      day = d;
      }

      int TDate::IsLeapYear()
      {
      return(year%4==0 && year%100!=0) || (year%400==0);
      }

      void TDate::Print();
      {
      cout<<year<<"."<<month<<"."<<day<<endl;
      }

      這里出現(xiàn)的作用域運(yùn)算符::是用來(lái)標(biāo)識(shí)某個(gè)成員函數(shù)是屬于哪個(gè)類的。

      該類的定義還可以如下所示:

      class TDate
      {
      public:
      void SetDate(int y, int m, int d)
      {year=y; month=m; day=d;}

      int IsLeapYear()
      {return(year%4==0 && year%100!=0) || (year%400==0);}

      void Print()
      {cout<<year<<"."<<month<<"."<<day<<endl;}

      private:
      int yeay, month, day;
      }

        這樣對(duì)成員函數(shù)的實(shí)現(xiàn)(即函數(shù)的定義)都寫(xiě)在了類體內(nèi),因此類的實(shí)現(xiàn)部分被省略了。如果成員函數(shù)定義在類體外,則在函數(shù)頭的前面要加上該函數(shù)所屬類的標(biāo)識(shí),這時(shí)使用作用域運(yùn)算符::。

        定義類時(shí)應(yīng)注意的事項(xiàng)

        1、在類體中不允許對(duì)所定義的數(shù)據(jù)成員進(jìn)行初始化。

        2、類中的數(shù)據(jù)成員的類型可以是任意的,包含整型、浮點(diǎn)型、字符型、數(shù)組、指針和引用等。也可以是對(duì)象。另一個(gè)類的對(duì)象,可以作該類的成員,但是自身類的對(duì)象是不可以的,而自身類的指針或引用又是可以的。當(dāng)一個(gè)類的對(duì)象用為這個(gè)類的成員時(shí),如果另一個(gè)類的的定義在后,需要提前說(shuō)明。

        3、一般地,在類體內(nèi)先說(shuō)明公有成員,它們是用戶所關(guān)心的,后說(shuō)明私有成員,它們是用戶不感興趣的。在說(shuō)明數(shù)據(jù)成員時(shí),一般按數(shù)據(jù)成員的類型大小,由小至大說(shuō)明,這樣可提高時(shí)空利用率。

        4、經(jīng)常習(xí)慣地將類定義的說(shuō)明部分或者整個(gè)定義部分(包含實(shí)現(xiàn)部分)放到一個(gè)頭文件中。

      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 伊人久久国产免费观看视频 | 在线Ⅴ片免费观看视频 | 亚洲国产日本综合aⅴ | 日韩国产中文一区二区在线 | 私人尤物在线精品不卡 | 婷婷网色偷偷亚洲的天堂 |