共用方式為


結構 (C++)

struct關鍵字定義結構型別和 (或) 結構型別的變數。

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

參數

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

  • struct
    struct 關鍵字。

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

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

  • base-list
    選擇性的類別或結構,此結構會衍生其成員的清單。 如需詳細資訊,請參閱 基底類別。 每個基底類別或結構名稱前可以加上存取規範 (公用私用保護) 和 虛擬關鍵字。 請參閱成員存取表格控制存取類別成員如需詳細資訊。

  • member-list
    結構成員的清單。 如需詳細資訊,請參閱類別成員。 唯一的差別在於struct用來取代class。

  • declarators
    指定的類別名稱的宣告子清單。 宣告子清單中宣告結構類型的一或多個執行的個體。 多個宣告可能包含初始設定式清單,如果所有的資料成員的類別皆public。 初始設定式清單是通用結構中,因為資料成員,所以public預設狀況下。 如需詳細資訊,請參閱 多個宣告的概觀

備註

結構型別是使用者定義的綜合類型。 它被由欄位或可以有不同類型的成員。

C + + 結構是不同於類別不同之處在於其成員都是public預設狀況下。

在 managed 的類別和結構的資訊,請參閱類別和結構

使用結構

在 c 中,您必須明確地使用struct關鍵字來宣告結構。 在 C++ 中,這是不必要一旦在定義型別。

您可以選擇將一或多個以逗號分隔變數名稱右邊的大括號和分號之間定義結構型別時,請宣告變數。

結構變數可以進行初始化。 每個變數初始設定必須括在括號中。

如需相關資訊,請參閱類別等位,以及 列舉

範例

// struct1.cpp
struct PERSON {   // Declare PERSON struct type
   int age;   // Declare member types
   long ss;
   float weight;
   char name[25];
} family_member;   // Define object of type PERSON

int main() {
   struct PERSON sister;   // C style structure declaration
   PERSON brother;   // C++ style structure declaration
   sister.age = 13;   // assign values to members
   brother.age = 7;
}

struct POINT {   // Declare POINT structure
   int x;   // Define members x and y
   int y;
} spot = { 20, 40 };    // Variable spot has
                        // values x = 20, y = 40

struct POINT there;     // Variable there has POINT type

struct CELL {   // Declare CELL bit field
   unsigned short character  : 8;  // 00000000 ????????
   unsigned short foreground : 3;  // 00000??? 00000000
   unsigned short intensity  : 1;  // 0000?000 00000000
   unsigned short background : 3;  // 0???0000 00000000
   unsigned short blink      : 1;  // ?0000000 00000000
} screen[25][80];       // Array of bit fields 

請參閱

參考

定義類別的型別