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

在编程时用到了一个结构体,而该结构体类型的实例还需要连成一个单向链表,并且需要知道在该链表中包含有多少个节点。很容易想到可以使用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;

}

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

运行结果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值