C++ //习题14.2 将例14.3程序改为下面的程序,请分析执行过程,写出运行结果。并指出由于异常处理而调用了哪些析构函数。

发布时间:2024年01月03日

C++程序设计 (第三版) 谭浩强 习题14.2

习题14.2 将例14.3程序改为下面的程序,请分析执行过程,写出运行结果。并指出由于异常处理而调用了哪些析构函数。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。

?

代码块:
#include <iostream>
#include <string>
using namespace std;

class Student{
public:
	Student(int n, string nam){
		cout<<"constructor - "<<n<<endl;
		num = n;
		name = nam;
	}
	~Student(){
		cout<<"destructor - "<<num<<endl;
	}
	void get_data();

private:
	int num;
	string name;
};

void Student::get_data(){
	if(num == 0) throw num;
	else cout<<num<<" "<<name<<endl;
	cout<<"in get_data()"<<endl;
}

void fun(){
	Student stud1(1101, "Tan");
	stud1.get_data();
	try{
		Student stud2(0, "Li");
		stud2.get_data();
	}
	catch(int n){
		cout<<"num = "<<n<<", error!"<<endl;
	}
}

int main(){
	cout<<"main begin"<<endl;
	cout<<"call fun()"<<endl;
	fun();
	cout<<"main end"<<endl;
	
	system("pause");
	return 0;
}
结果显示如下:

在这里插入图片描述

文章来源:https://blog.csdn.net/navicheung/article/details/135355989
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。