p190.cpp

来自「《C++编程指南(续编)》的一些程序源代码」· C++ 代码 · 共 78 行

CPP
78
字号
#include <iostream>
#include <ctype.h>
#include <string>

using namespace std;

class Student
{
public:
	Student(char * pLN,char * pFN,
		int nGrd,unsigned long ulId);
	~Student();

protected:
	std::string sLName;
	std::string sFName;
	int nGrade;
	unsigned long ulID;
};
Student::Student(char * pLN,char * pFN, int nGrd,unsigned long ulId):sLName(pLN),sFName(pFN)
{
	cout<<"Constructing"<<(sFName+" "+sLName)<<endl;
	nGrade=nGrd;
	ulID=ulId;
}
Student::~Student()
{
	cout<<"Destructing"<<(sFName+" "+sFName)<<endl;
}

class Err
{
public:
	Err(int nErrCode,char * pszReason):nCode(nErrCode),sReason(pszReason)
	{
	}
	void display(ostream& out)
	{
		out<<nCode<<" : "<<sReason;
	}
protected:
	int nCode;
	string sReason;
};

int someError()
{
	return 1;
}

void fn2()
{
	Student s2("Rabbit","Butt-head",2,876543210L);
	int nErrRtn;
	if(nErrRtn=someError())
	{
		throw Err(nErrRtn,"Error returned to fn2 from someError");
	}
}
void fn1()
{
	Student s1("Rabbit","Beavis",1,765432109L);
	fn2();
}
int main(int,char **)
{
	try
	{
		fn1();
	}
	catch (Err& error)
	{
		cout<<"Fielded error ->";
		error.display(cout);
		cout<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

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