//============================================================================
// Name : 5.1.cpp
// Author : zhaoming
// Version :
// Copyright : copyright to zhaoming
// Description : Hello World in C++, Ansi-style
//============================================================================
// C++课本上5.1是错的
#include <iostream>
using namespace std;
class LIST{
int value;
LIST *next;
static LIST *head; //声明静态数据成员
public:
LIST(int value);
~LIST();
};
LIST *LIST::head = 0; //定义并初始化静态数据成员
LIST::LIST(int v)
{
value = v;
next = head;
head = this;
}
LIST::~LIST()
{
LIST *p = head;
if(head == this)
{
head = this->next;
}else{
while(p->next != NULL && p->next != this) //第二次调用b的析构函数时,p为null
p = p->next;
p->next = this->next;
}
cout << " "<< this->value<<" ";
}
int main() {
LIST a(1);
LIST b(2);
LIST c(3);
//b.~LIST(); //显示调用后,还会默认调用一次,导致出错
return 0;
}
C++基础 静态成员,析构函数显示调用 课本5.1
最新推荐文章于 2021-05-17 17:18:23 发布