⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p248.cpp

📁 《C++编程指南(续编)》的一些程序源代码
💻 CPP
字号:
#include <iostream>
#include "student.h"

using namespace std;

Student * Student::pFirst=(Student *)0;
Student * Student::pLast=(Student *)0;

Student::Student(const char * pLN,const char * pFN,
				 int nGrd,unsigned long ulId)
				 :sLName(pLN),sFName(pFN)
{
	nGrade=nGrd;
	ulID=ulId;
}

Student::Student(const std::string& sLN,const std::string& sFN,
				 int nGrd,unsigned long ulId)
				 :sLName(sLN),sFName(sFN)
{
	nGrade=nGrd;
	ulID=ulId;
}

ostream& operator<<(ostream& out,const Student& s)
{
	out<<s.sFName<<"  "<<s.sLName
		<<"  "<<s.nGrade<<"  "<<s.ulID;
	return out;
}

void Student::addList()
{
	pPrev=pLast;
	if(pLast)
	{
		pLast->pNext=this;
	}
	pNext=0;

	pLast=this;

	if(pFirst==0)
	{
		pFirst=this;
	}
	return;
}

void Student::rmvList()
{
	Student * pPrevS=pPrev;
	Student * pNextS=pNext;

	if(pPrevS)
	{
		pPrevS->pNext=pNextS;
	}
	else
	{
		pFirst=pNextS;
	}
	if(pNextS)
	{
		pNextS->pPrev=pPrevS;
	}
	else
	{
		pLast=pPrevS;
	}
	pPrev=pNext=0;
}

int main(int,char **)
{
	Student s1("Brown","Jackie",2,111111111L);
	s1.addList();

	Student s2("Brown","Jessalyn",10,222222222L);
	s2.addList();

	Student s3("Brown","Ashley",8,333333333L);
	s3.addList();

	Student * pS;
	for(pS=Student::first();pS;pS=pS->next())
	{
		cout<<"Student : "<<*pS<<"\n";
	}
	s2.rmvList();
	s3.rmvList();
	s1.rmvList();

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -