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

📄 例14.3.txt

📁 是关于谭浩强老师的C++程序设计课程的程序源代码以及课件
💻 TXT
字号:
例14.3 在异常处理中处理析构函数。
这是一个为说明在异常处理中调用析构函数的示例,为了清晰地表示流程,程序中加入了一些cout语句,输出有关的信息,以便读者对照结果分析程序。
#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;                            //如num=0,抛出int型变量num
  else cout<<num<<″ ″<<name<<endl;                 //若num≠0,输出num,name 
  cout<<″in get_data()″<<endl;                     //输出信息,表示目前在get_data函数中
 }

void fun( )
{Student stud1(1101,″Tan″);               //建立对象stud1
stud1.get_data( );                        //调用stud1的get_data函数
Student stud2(0,″Li″);                   //建立对象stud2
stud2.get_data( );                        //调用stud2的get_data函数
}

int main( )
{cout<<″main begin″<<endl;                 //表示主函数开始了
cout<<″call fun( )″<<endl;                 //表示调用fun函数
try
  {fun( );}                                 //调用fun函数
catch(int n)
  {cout<<″num=″<<n<<″,error!″<<endl;}      //表示num=0出错
cout<<″main end″<<endl;                   //表示主函数结束
return 0;
}

⌨️ 快捷键说明

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