C++ //演習 14.2 例 14.3 のプログラムを以下のプログラムに変更し、実行過程を解析し、結果を書き留めてください。また、例外処理によりどのデストラクターが呼び出されたかを示します。

C++ プログラミング (第 3 版) Tan Haoqiang 演習 14.2

演習 14.2 例 14.3 のプログラムを次のプログラムに変更し、実行過程を解析し、実行結果を書き留めてください。また、例外処理によりどのデストラクターが呼び出されたかを示します。

IDEツール:VS2010
注: 異なる 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;
}
結果を以下に示します。

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/navicheung/article/details/135355989