Structure

C++中的 struct 和 class 基本是通用的,唯有幾個細節不同:
使用 class 時,類中的成員默認都是 private 屬性的;而使用 struct 時,結構體中的成員默認都是 public 屬性的。
class 繼承默認是 private 繼承,而 struct 繼承默認是 public 繼承。
class 可以使用Template(模板),而 struct 不能。

Syntax:

1
2
3
4
5
6
7
8
9
struct structureName{
member1;
member2;
member3;
.
.
.
memberN;
};

C ++中的結構(Structures)可以包含兩種類型的成員:
Data member:variables(變量)。 我們可以在C ++中創建具有不同數據類型變量的結構。
Member function:除了variable,我們還可以在結構聲明中包含function。

How is it used?

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#include <iostream>
using namespace std;

//Declaration
struct student{
char name[100];
int studentID;
int age;
}

//Usage

int main(){
//struct student studentA;
student studentA;
studentA.studentID = 420;
studentA.age = 18;
strcpy(studentA.name, "vines");

cout << studentA.age << endl;
}

Self-Referential Structures

A Self-Referential Structures is essentially a structure definition which includes at least one member that is a pointer to the stucture of its own kind.
就是自己Object拉著一個Object (詳見 Linked-List):

例子:

1
2
3
4
5
6
struct Node
{
int data;
struct Node *next;
}

Reference

Structures in C++ - GeeksforGeeks
Struct vs class in C++
C++ class和struct的区别
C 語言:結構(struct)自訂不同資料型態綁一起
C/C++ struct和class区别详解