struct (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
。
如需 C++/CLI 中 Managed 類別和結構的相關資訊,請參閱 類別和結構 。
使用結構
在 C 中,您必須明確使用 struct
關鍵字來宣告 結構。 在 C++ 中,在定義類型之後,您不需要使用 struct
關鍵字。
您可以選擇在定義結構類型時宣告變數,方法是將一個或多個逗號分隔的變數名稱放在右大括號和分號之間。
結構變數可以初始化。 每個變數的初始化都必須以大括號括住。
範例
#include <iostream>
using namespace std;
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
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
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;
cout << "sister.age = " << sister.age << '\n';
cout << "brother.age = " << brother.age << '\n';
CELL my_cell;
my_cell.character = 1;
cout << "my_cell.character = " << my_cell.character;
}
// Output:
// sister.age = 13
// brother.age = 7
// my_cell.character = 1
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應