共用方式為


class (C++)

class 關鍵字宣告類別型別或定義類別型別的物件。

[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
   member-list 
} [declarators];
[ class ] tag declarators;

參數

  • template-spec
    選擇性樣板規格。 如需詳細資訊,請參閱 樣板規格

  • class
    class 關鍵字。

  • ms-decl-spec
    選擇性儲存類別規格。 如需詳細資訊,請參閱 __declspec 關鍵字。

  • tag
    提供給類別的類型名稱。 標記會在類別的範圍內成為保留字。 標記是選擇性的。 如果省略,則會定義匿名類別。 如需詳細資訊,請參閱匿名類別類型

  • base-list
    將衍生此結構之成員的類別或類別的選擇性清單。 如需詳細資訊,請參閱 基底類別。 每一個基底類別或結構名稱前面可以有存取規範 (publicprivateprotected) 和 virtual 關鍵字。 如需詳細資訊,請參閱控制類別成員的存取

  • member-list
    類別成員的清單。 如需詳細資訊,請參閱類別成員

  • declarators
    指定一個或多個執行個體名稱的類別型別來宣告子清單。 如果類別的所有資料成員都是 public,宣告子可能包含初始設定式清單。 在結構中根據預設資料成員是 public ,比在類別中常見。 如需詳細資訊,請參閱 宣告子概觀

備註

一般來說,如需類別的詳細資訊,請參閱下列其中一個主題:

如需 Managed 類別和結構的詳細資訊,請參閱類別和結構

範例

// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.

#include <iostream>
#include <string>
#define TRUE = 1
using namespace std;

class dog
{
public:
   dog()
   {
      _legs = 4;
      _bark = true;
   }

   void setDogSize(string dogSize)
   {
      _dogSize = dogSize;
   }
   virtual void setEars(string type)      // virtual function
   {
      _earType = type;
   }

private:
   string _dogSize, _earType;
   int _legs;
   bool _bark;

};

class breed : public dog
{
public:
   breed( string color, string size)
   {
      _color = color;
      setDogSize(size);
   }

   string getColor()
   {
      return _color;
   }

   // virtual function redefined
   void setEars(string length, string type)
   {
      _earLength = length;
      _earType = type;
   }

protected:
   string _color, _earLength, _earType;
};

int main()
{
   dog mongrel;
   breed labrador("yellow", "large");
   mongrel.setEars("pointy");
   labrador.setEars("long", "floppy");
   cout << "Cody is a " << labrador.getColor() << " labrador" << endl;
}

請參閱

參考

C++ 關鍵字

類別、結構和等位