C++中類的定義和類的構造函數


類的定義

class 類名{ 訪問范圍說明符: 成員變量1 成員變量2 成員函數聲明1 成員函數聲明2 訪問范圍說明符: 更多成員變量 更多成員函數聲明 ... };
類的定義要以
;
結束。
“訪問范圍說明符”一共有三種,分別是 public、private 和 protected。三者的區別后面會詳細介紹,目前暫且都用 public。“訪問范圍說明符”可以出現任意多次。
“成員變量”的寫法與普通的變量定義相同。稱其為成員變量,是因為這些變量是一個類的成員。
同樣地,“成員函數聲明”的寫法也與普通的函數聲明相同。
一個類的成員函數之間可以互相調用。類的成員函數可以重載,也可以設定參數的默認值。
以前所學的函數不是任何類的成員函數,可稱為“全局函數”。
成員變量就代表對象的“屬性”,成員函數就代表對象的“方法”。成員變量和成員函數出現的先后次序沒有規定。
成員函數的實現可以位於類的定義之外,格式如下:
返回值類型 類名:函數名() { 函數體 }
定義類之后,就可以定義對象了。定義對象的基本方法如下:
類名 對象名;
此處,“對象名”的命名規則和普通變量相同。對象也可以看作“類變量”。

       public:
        int w, h; //成員變量,寬和高
        void init( int w_,int h_ ); //成員函數,設置寬和高
        int area(); //成員函數, 求面積
        int perimeter(); //成員函數,求周長
     }; //必須有分號
      void CRectangle::init( int w_,int h_ )
     {
         w = w_;  h = h_;
      }
      int CRectangle::area()
     {
        return w * h;
      }
     int CRectangle::perimeter()
      {
        return 2 * ( w + h);

類的構造函數

1.構造函數是特殊的成員函數,與其他成員函數不同的是,構造函數和類同名,而且沒有返回類型。與其他成員函數相同的是,構造函數也有形參表(可能為空)和函數體。

一個類可以有多個構造函數,每個構造函數必須有與其他構造函數不同數據或類型的形參。對於沒有形參的構造函數我們稱為默認構造函數,那么定義對象時,如果沒有指明實參,就會調用默認的構造函數。

值得注意的是,如果我們沒有顯式地定義默認構造函數,編譯器會自動為這個類生成默認構造函數,這個自動生成的默認構造函數,就會按照一定的初始化規則來初始化類中的成員。

構造函數與其他函數一樣,具有名字、形參表和函數體,但是構造函數可以包含一個構造函數初始化列表。構造函數初始化列表以一個冒號開始,接着是一個以逗號分隔的數據成員列表,每個數據成員后面跟一個放在圓括號中的初始化式。

2.構造函數是一類特殊的函數,與其他的成員函數不同的是構造函數構造函數不需要用戶來調用它,而是建立對象的時候自動的執行

代碼示例

             #include <iostream>
            //#include "student.h"
          //#include <string>
          //#include <cstring>
           using namespace std;
           class Time
           { public:
              Time()    //構造函數必須與類的名稱相同
              {                              //利用構造函數對對象中的數據成員進行初始化
            hour=0;
            minute=0;
              sec=0;

             }
           void set_time();
          void show_time();
           private:
         int hour;
        int minute;
         int sec;

     };


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM