c++ throw后面接一个构造函数是什么意思

如题所述

throw表达式由关键字throw后面跟一个表达式构成,该表达式的类型是被抛出异常的类型。

比如throw 10;//整型 throw 3.5f;//浮点型.
在抛出异常中最常用的是抛出一个异常类的对象,你所说的构造函数就是抛出一个对象。追问

那个对象 也就是临时创建的喽

追答

我不太明白你说的临时创建是什么意思,下面这个例子不知道能不能解释?就是调用构造函数创建一个抛出的的对象,和临时没有关系,它不是一个temp的对象。

 

 

 

 

追问

恩 没看明白 既然是抛出构造函数就会抛出一个对象
可是这个对象是哪里来的呢

温馨提示:内容为网友见解,仅供参考
无其他回答

关于C++代码中的throw
throw表达式由关键字throw后面跟一个表达式构成,该表达式的类型是被抛出异常的类型。比如throw 10;\/\/整型 throw 3.5f;\/\/浮点型.在抛出异常中最常用的是抛出一个异常类的对象,是调用构造函数创建一个抛出的的对象

c++什么叫构造函数,它的作用是什么
\/\/ 复制构造函数(也称为拷贝构造函数) \/\/ 复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中 \/\/ 若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统默认创建...

C++throw异常处理
throw后面跟一个变量或常量,所以不能写 throw runtime_error err("can't open file");应该是 runtime_error err("can't open file");throw err; 即先把err构造出来,然后throw。

C++中 关于throw exception的问题
每个函数其实都是有一个叫做 throw 列表的东西,表明了它能抛出哪一种类型的异常,括号内异常类型的写法和函数参数的写法是一模一样的,可以有一个,也可以很多个,如果一个函数后面没有写throw列表,那么这个函数内部可以抛出所有类型的异常。你这里的是构造函数的 throw列表,参数表明函数内部可以抛出exce...

c++编写一个类一定要加上构造函数吗?
这个就是默认的构造函数。再贴一段百科的定义你就懂了:默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。

C++关键字 try throw catch
c++程序中的某些词具有特殊含义,被称为关键字。异常是程序正常功能之外的运行时异常,如丢失数据库连接或遇到意外输入。异常处理机制通过检测和处理异常来支持程序协作。异常检测部分程序是指包含throw关键字的语句块,负责检测无法解决的问题并停止运行。异常处理部分程序包含try语句块和紧随其后的catch语句块...

throw问题(C++): throw只能在try_catch throw结构中运用吗?单独运用为 ...
上边的例子1实际上是正确的,因为你自己的main函数抛出了异常没有处理,则系统会调用abort函数来处理你的异常,就是弹出那个框框,抛出了异常,往往是调用者来处理改异常,如果调用者没有处理则找调用者的调用者,如果main函数也没处理,则由操作系统来处理,也就是弹那个框框 ...

c++语法问题,请教关于throw的问题
引发异常创建临时拷贝

在C++中一个类可以含有多个构造函数吗?
可以啊,重载的概念最初就是为了构造函数提出来的 一个类就算自己没定义构造函数,编译器也会自动提供两个构造函数:默认构造函数和复制构造函数 但是析构函数只能有一个

C++语法高手进
3. 类的缺省构造函数是不需要用户提供任何参数的构造函数。4. STL中标准数组-vector(文件),两种遍历方式:(1)通过下标操作符;(2)使用迭代器,如vector<int>::iterator iter;可以通过对iterator解引用来直接访问实际的元素*iter;STL提供了作用于容器类型的泛型算法,头文件。5. 文字常量是不可寻址的。6. 常用的几...

相似回答