现在的位置: 首页 > 综合 > 正文

在C++结构体中使用静态数据成员(一)

2018年05月09日 ⁄ 综合 ⁄ 共 900字 ⁄ 字号 评论关闭

 

在编程时用到了一个结构体,而该结构体类型的实例还需要连成一个单向链表,并且需要知道在该链表中包含有多少个节点。很容易想到可以使用STL中的队列之类的集合做到这一点,不过由于不是什么正经项目中要用的代码,所以就考虑能否在结构体中声明一个静态变量实现对节点的计数功能,因此有了如下代码。

 

#include <iostream>

 

using namespace std;

 

/* 结构体定义 */

typedef struct staticStruct

{

     int data;

     static int count;           // 静态变量

     struct staticStruct* next;

}STATICSTRUCT, *PSTATICSTRUCT;

 

int staticStruct::count = 0;     // 初始化结构体静态变量值

 

void main()

{

     PSTATICSTRUCT h;

 

     /* 生成两个结构实例 */

     PSTATICSTRUCT p = new STATICSTRUCT; // 1个结构体

     if(p)

     {

         h = p;

         p->count++;

     }

     /* 输出当前结点中的count */

     cout << "1节点创建后: 1: " << h->count << endl;

 

     p = NULL;

     p = new STATICSTRUCT;  // 2个结构体

     if(p)

     {

         h->next = p;

         p->count++;

     }

 

     /* 输出两个结构中的静态成员值 */

     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;

}

 

编译并运行上述代码,其结果如下:

运行结果

抱歉!评论已关闭.