在C 結構體中使用靜態資料成員 一

2021-04-27 18:09:49 字數 881 閱讀 2635

在程式設計時用到了乙個結構體,而該結構體型別的例項還需要連成乙個單向鍊錶,並且需要知道在該鍊錶中包含有多少個節點。很容易想到可以使用

stl中的佇列之類的集合做到這一點,不過由於不是什麼正經專案中要用的**,所以就考慮能否在結構體中宣告乙個靜態變數實現對節點的計數功能,因此有了如下**。

#include

using

namespace std;

/* 結構體定義*/

typedef

struct staticstruct

staticstruct, *pstaticstruct;

intstaticstruct::count = 0;

// 初始化結構體靜態變數值

void

main()

/* 輸出當前結點中的count值*/

cout << "

第1節點建立後:1: " << h->count << endl;

p = null;

p = new staticstruct;

// 第2個結構體

if(p)

/* 輸出兩個結構中的靜態成員值*/

cout << "

第2節點建立後:1: " << h->count << endl;

cout << "

第2節點建立後:2: " << h->next->count << endl;

/* 釋放空間並輸出count值*/

h->next->count--;

delete h->next;

cout << "

第2節點刪除後:1: " << h->count << endl;

delete h; }

編譯並執行上述**,其結果如下:

類中使用靜態資料成員

類的靜態成員,保證每個類只有乙個實體,每個物件中不再有它的副本。由於靜態成員脫離物件而存在的性質,所以該實體應該在所有物件產生之前存在,因此,更適合的時機是在程式啟動的時候,做其初始化。include include using namespace std class student void pr...

在類的靜態成員函式中使用類的非靜態成員

我們知道,類的靜態成員函式只能訪問類的靜態資料成員和類的其他靜態函式,eg includeusing namespace std class a static void func2 void func3 int main 如果我們要在類的靜態成員函式中使用類的非靜態成員函式和非靜態資料成員時,可以通...

C語言中使用結構體

1 先定義結構體 struct stu char name 20 long number float score 4 再定義指向結構體型別變數的指標變數 struct stu p1,p2 或者 struct stu p1,p2 定義指標變數p 1 p 2,分別指向結構體型別變數。2 在定義型別的同時...