`
yangyou230
  • 浏览: 1647804 次
文章分类
社区版块
存档分类

构造函数没有返回值,那么如何得知对象是否构造成功?

 
阅读更多

这里的“构造”不是单指分配对象本身的内存,而是指在建立对象时做的初始化操作(如打开文件、连接数据库等)。

因为构造函数没有返回值,所以通知对象的构造失败的唯一方法那就是在构造函数中抛出异常。构造函数中抛出异常将导致对象的析构函数不被执行(对象都没有构造成功何来析构?)。当对象发生部分构造时,已经构造完毕的子对象将会逆序地被析构。

分享到:
评论

相关推荐

    构造函数与析构函数

    构造函数是一个与类同名的方法,可以没有参数,有一个参数或多个参数,但是构造函数没有返回值。如果构造函数没有参数,该函数被称为类的默认构造函数。 (1) 一个类可以包含多个构造函数,各个构造函数之间通过...

    函数的形参是类对象+函数的形参是类对象的引用或者指针+函数的返回值是类对象.cpp

    面向对象程序设计,即c++语言。类,函数的形参、返回值为不同情况时,复制构造函数的调用。内有详细的注释说明。

    利用反射动态创建对象在VS.Net中,有很多种方法动态调用对象的构造函数

    在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在本地或从远程创建对象类型,或获取对现有远程对象的引用。它的方法...

    JS中的构造函数详细解析

    通常来说,构造函数没有返回值,它们只是初始化由this指针传递进来的对象,并且什么也不返回。如果一个函数有返回值,被返回的对象就成了new表达式的值。从形式上看,一个函数被作为构造函数还是普通函数执行的唯一...

    C++构造函数中抛出的异常

    C++程序员朋友们知道,C++中的构造函数是没有返回值的,所以不少关于C++编程方面的书上得出结论:“因为构造函数没有返回值,所以通知对象的构造失败的方法那是在构造函数中抛出异常”。主人公阿愚非常不同

    构造与析构顺序

    构造与析构在C++中,有一种特殊的成员...构造函数与类同名且无返回值,在对象实例化时自动调用 构造函数可以有多个重载形式 实例化对象时仅用到一个构造函数 当用户没有定义构造函数时,编译器自动生产一个构造函数。

    C++函数返回值为对象时,构造析构函数的执行细节

    C++函数返回值为对象时,构造析构函数的执行细节,需要的朋友,可以参考下

    深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结

    用同一个类的源对象构造一个目标对象时,会调用拷贝构造函数来构造目标对象,如果没有定义拷贝构造函数,将调用类的默认拷贝函数来构造目标对象。2 . 当一个函数的返回值为一个类的对象时,如果在调用函数中,没有...

    深入讲解C++中的构造函数

    构造函数(Constructor)是一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户调用(用户也不能调用),而是在创建对象时自动执行。构造函数的作用是在创建对象时进行初始化工作,最常见的就是对成员...

    C++构造函数初始化顺序详解

    2.缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空 3.创建一个对象时,系统自动调用构造函数 析构函数 1.析构函数没有参数,也没有返回值。不能重载,也...

    关于构造函数的调用顺序

     在说构造函数之前我们得先弄明白几个问题,首先是什么是类的构造函数,什么是类的成员对象,什么是基类,然后我们再来说构造函数的调用顺序。  1、 类的构造函数  构造函数的功能主要用于在类的对象创建时定义...

    完全掌握C++编程中构造函数使用的超级学习教程

    构造函数具有与类相同的名称,没有返回值。构造函数可以具有任意数量的参数,类可以具有任意数量的重载构造函数。构造函数可以具有任何可访问性(公共、受保护或私有)。如果未定义任何构造函数,则编译器会生成不...

    JavaScript构造函数原理及实现流程解析

    在我看来,构造函数具有两个特点可以判断是否为构造函数: 1.当函数名为首字母大写时,这个是一个可以大概判断构造函数与普通函数的一个特点,但是不是绝对正确,因为普通函数也可以是大写字母开头 2.当我们需要调用...

    C++构造函数和析构函数的使用与讲解

    构造函数(constructor) 1.构造函数是种特殊的类成员函数,遵循如下规则: a.函数名与类名必须相同。 b.没有返回值 例如: class Obj ...2.构造函数可以带参数,也...在创建一个对象时,构造函数自动调用(编译器来完成

    Javascript 普通函数和构造函数的区别

    普通函数和构造函数的区别 在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。 在函数调用的时候: function fn() { }  构造函数:1. new fn( )  2 .构造函数内部会创建一个新的对象,即f...

    C++复制控制之复制构造函数

     复制构造函数首先是一个构造函数,它同所有其他的构造函数一样与类同名,没有返回值。它有一个的参数,是该类类型的引用(一般将它声明为const,源于用于赋值的对象一般不用改变它本身的值)。于是复制构造函数的...

    详解C++-二阶构造模式、友元

    由于构造函数没有返回值不能判断执行结果,所以不能保证初始化对象能否成功 比如: class Test{ private: int *p; public: Test(int i) { p=new int(i); } } 假如创建对象时,执行new分配时失败了,便会出现bug,若...

    CSDN技术文档大全(CHM)

    我们知道,类的构造函数是没有返回值的,如果构造函数构造对象失败,不可能依靠返回错误代码。那么,在程序中如何标识构造函数的失败呢?最“标准”的方法就是:抛出一个异常。 构造函数失败,意味着对象的构造失败...

    element-constructors:关于如何为Element、HTMLElement等实现构造函数的一些想法

    元素构造函数推测设计 这是一种展示如何为 HTML 元素构建构造函数层次结构的方法,同时保持许多不变量。 术语:在下文中,我使用“ X自己的实例”来表示obj.constructor === X对象,作为与“ X实例”的距离,这意味...

    EDA/PLD中的关于构造函数的调用顺序

     在说构造函数之前我们得先弄明白几个问题,首先是什么是类的构造函数,什么是类的成员对象,什么是基类,然后我们再来说构造函数的调用顺序。  1、 类的构造函数  构造函数的功能主要用于在类的对象创建时定义...

Global site tag (gtag.js) - Google Analytics