/*示例代码
本程序定义具有自动维护功能的链表,节点定义时自动加入到链表首部,在析构时将自动从链表删除;
*/#include<iostream>usingnamespace std;classLIST{int value;
LIST *next;static LIST *head;public:LIST(int value);~LIST();};
LIST *LIST::head =0;//定义并初始化静态数据成员
LIST::LIST(int v){this->value = v;this->next = head;
head =this;}
LIST::~LIST(){
LIST *p = head;if(head ==this) head =this->next;else{while( p->next !=this) p =p->next;
p->next =this->next;}}intmain(){
LIST a(1);
LIST b(2);
LIST c(3);
b.~LIST();//删除b节点system("pause");return0;}
5.为了避免生存期的矛盾,局部类不允许定义静态数据成员;
函数 main 的静态对象s在退出main仍然继续生存,其普通对象 a 退出main后会消芒,作为a s 的共享静态数据成员,d 要么随对象 a 生存,要么随对象 s消芒;出现矛盾;
voidmain(){classT{int c;//static int d; 局部类不能定义静态数据成员};
T a;static T s;}