传值方式传递异常对象
来源:互联网 发布:java房屋租赁管理系统 编辑:程序博客网 时间:2024/05/20 23:03
#include<string>
#include<iostream>
using namespace std;
class CMyException
{
//异常类,该类的对象作为抛出异常时传递的异常参数。
public:
CMyException (string n="none") : name(n)
{
//构造函数,根据参数n构造一个名字为n的异常类对象
cout<<"构造一个CMyException对象,名称为:"<<name<<endl;
}
CMyException (const CMyException& e)
{
//拷贝构造函数,根据参数e拷贝构造一个异常类对象
name = e.name;
cout<<"拷贝一个CMyException对象,名称为:"<<name<< endl;
} virtual ~ CMyException ()
{
cout << "销毁一个CMyException对象,名称为:" <<name<< endl;
}
string GetName() {return name;}
protected:
string name; //异常类对象的名字
};
void main()
{
try{
// 构造一个异常对象,即会调用一次CMyException类
//的构造函数。这是个局部变量。
CMyException obj1("obj1");
//下面抛出异常对象。注意:这时VC编译器会复制
//一份新的异常对象,即调用一次CMyException
//类的拷贝构造函数。新拷贝的对象是个临时变量。 1
throw obj1;
}
catch(CMyException e)
{
//当异常参数传递给e时,由于是传值方式,因 2
//此会调用一次拷贝构造函数
cout<<"捕获一个CMyException类型异常,名称为:"<<e.GetName()<<endl;
}
cout<<"程序运行结束!"<< endl;
#include<iostream>
using namespace std;
class CMyException
{
//异常类,该类的对象作为抛出异常时传递的异常参数。
public:
CMyException (string n="none") : name(n)
{
//构造函数,根据参数n构造一个名字为n的异常类对象
cout<<"构造一个CMyException对象,名称为:"<<name<<endl;
}
CMyException (const CMyException& e)
{
//拷贝构造函数,根据参数e拷贝构造一个异常类对象
name = e.name;
cout<<"拷贝一个CMyException对象,名称为:"<<name<< endl;
} virtual ~ CMyException ()
{
cout << "销毁一个CMyException对象,名称为:" <<name<< endl;
}
string GetName() {return name;}
protected:
string name; //异常类对象的名字
};
void main()
{
try{
// 构造一个异常对象,即会调用一次CMyException类
//的构造函数。这是个局部变量。
CMyException obj1("obj1");
//下面抛出异常对象。注意:这时VC编译器会复制
//一份新的异常对象,即调用一次CMyException
//类的拷贝构造函数。新拷贝的对象是个临时变量。 1
throw obj1;
}
catch(CMyException e)
{
//当异常参数传递给e时,由于是传值方式,因 2
//此会调用一次拷贝构造函数
cout<<"捕获一个CMyException类型异常,名称为:"<<e.GetName()<<endl;
}
cout<<"程序运行结束!"<< endl;
}
0 0
- 传值方式传递异常对象
- 传引用方式传递对象
- C++异常对象三种方式传递的综合比较
- C++的异常对象按引用方式被传递
- C++异常对象三种方式传递的综合比较
- android 传递对象方式
- C++异常对象的传递
- (转)C++异常对象三种方式传递的综合比较
- C++的异常对象按传值的方式被复制和传递
- 防止传值方式传递
- windows phone 8 使用页面传对象的方式 实现页面间的多值传递
- C++异常传递的三种方式
- C++的异常对象如何被传递
- C++中两种参数传递方式 :值传递和传指针
- Intent传递对象的两种方式
- intent传递对象的两种方式
- Intent传递对象的几种方式
- Intent传递对象的几种方式
- 重启apache
- BroadcastResiver广播与Service交互01
- Drawable之State list
- HDU---1048-Humble Numbers (DP)
- 《大教堂与集市》读书笔记之一:黑客圈简史
- 传值方式传递异常对象
- 6,22 商品销售 洗刷刷 oj 1
- leetcode | Min Stack
- Android_15_pull解析Xml文件
- 2015-第16周项目2-有些数的阶乘不算了
- C实现 LeetCode->Reverse Linked List (双指针大法)(单链表反转)
- vc++6.0错误
- 苹果,谷歌、微软与Mozilla联合宣布WebAssembly——Web时代的汇编语言
- C++ 复习