您的位置:首页 > 编程语言 > C语言/C++

C++基础 静态成员,析构函数显示调用 课本5.1

2012-12-28 17:02 656 查看
//============================================================================
// 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐