c++,当构造函数失败时,构造函数内部怎么处理?
1个回答
展开全部
1、构造函数想通知外部自己构造失败,只有抛异常这一个途径(没有返回值);
2、
如果不抛异常,那么构造函数执行完毕,从语言层面上编译器认为该对象是正确构造了的,其实构造没有按预想的进行,所以需要用状态变量、构造函数引用参数就可以让外界可以知道构造失败了。
3.、如果抛异常标识构造失败,那么,所有已经构造好的基类对象和数据成员会按照构造逆序逐个进行析构(基础数据类型除外,因为它们析构就是什么都不做)。这里有一点要注意,如果发生了动态内存分配,那需要在抛异常前手动释放内存,否则会有内存泄漏。
构造函数
,是一种特殊的方法。主要用来在创建对象时初始化对象,
即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数
,可根据其参数个数的不同或参数类型的不同来区分它们
即构造函数的重载。
2、
如果不抛异常,那么构造函数执行完毕,从语言层面上编译器认为该对象是正确构造了的,其实构造没有按预想的进行,所以需要用状态变量、构造函数引用参数就可以让外界可以知道构造失败了。
3.、如果抛异常标识构造失败,那么,所有已经构造好的基类对象和数据成员会按照构造逆序逐个进行析构(基础数据类型除外,因为它们析构就是什么都不做)。这里有一点要注意,如果发生了动态内存分配,那需要在抛异常前手动释放内存,否则会有内存泄漏。
构造函数
,是一种特殊的方法。主要用来在创建对象时初始化对象,
即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数
,可根据其参数个数的不同或参数类型的不同来区分它们
即构造函数的重载。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询