1. 程式人生 > >C++(類)

C++(類)

具有相同屬性的一類事物,將不同型別的資料和與這些資料相關的操作封裝在一起,類的例項是物件。


  1. 定義:
    class 類名//類名一般採取首字母大寫的格式,成員訪問許可權的宣告出現順序無要求。
    {
    public:(public成員)
    private:(private成員)
    protected:(protected成員)
    };

  2. 訪問許可權(類的預設訪問許可權為私有)
    public(公有訪問許可權):提供類介面的功能,成員和程式中均可訪問。
    private(私有訪問許可權):被隱藏的資料,只有該類的成員或友元函式可以訪問,
                                              派生類和外部函式不能訪問。
    protected(保護):成員函式和派生類都可以訪問,外部類外部函式不能訪問。

  3. 定義成員函式
    ①類體內定義
    ②類體外定義

    class Cdate
    {
      void set(int a);
    };
    void Cdate::set(int a)//格式為   返回值型別 類名::函式名{函式體}
    {函式體}
  4. 呼叫成員函式
    成員運算子呼叫: Cdate obj;
                    obj.set(1);

    指標呼叫:Cdate *pobj;//pobj是指向obj的指標
              pobj=&obj;
              pobj->set(1);


    引用呼叫:Cdate &a=obj;//a是物件obj的引用
              a.set(1);

  5. 重名問題
    1、型別名隱藏了非型別名,如果要使用非型別名則在使用非型別名前加作用域運
         算符::
         int N;
       class N{};
       void fun()
       {
         class N a;//類N遮蔽了全域性變數
         ::N=3;
       }


     2、非型別名隱藏了型別名,使用型別名時,在前加class
         class Num{};
         void fun(int Num)
         {
         class Num a;//類名前加class
         Num++;//形參自增
         }

  6. 類與結構體的區別
    1、結構體預設訪問許可權為public,類預設private。
    2、結構體通過特定語法格式初始化,類通過建構函式和解構函式初始化。