您当前的位置: 首页 > 

我什么都布吉岛

暂无认证

  • 6浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

值初始化和默认初始化

我什么都布吉岛 发布时间:2020-11-03 14:41:07 ,浏览量:6

一个对象要么执行默认初始化,要么执行值初始化。如果对象有初值,那么执行值初始化;若没有初值则执行默认初始化。根据默认初始化的类型和位置,有两种情况:

  • 内置类型。局部作用域,不初始化;全局、静态变量初始化为0。

  • 类类型。默认初始化将会调用默认构造函数完成其初始化过程。如STL中的vector将会默认初始化为空容器;string将会默认初始化为空字符串。

    类的默认初始化是否有“有效值”依赖于默认构造函数是否将每个数据成员都有默认初值,或在默认构造函数中执行赋值。为了避免这一可能导致的出错,Effective C++条款四中提到,应该为每个数据成员都进行默认初始化(无论是通过默认初值还是初始化列表),虽然在默认构造函数体内能够通过赋值达到同样的效果,但是作者还是建议我们使用前者,因为效率更高。

[1] C++定义了一套包括算术类型(Arithmetic type)和空类型(void)在内的基本数据类型,也叫做基本内置类型。算术类型它包括:bool char wchar_t char16_t char32_t short int long long long float double long double

关注
打赏
1658157489
查看更多评论
立即登录/注册

微信扫码登录

0.0446s