【C++11】统一的列表初始化 + 声明(auto + decltype)+ 范围for + 指针空值nullptr

本文详细介绍了C++中统一的列表初始化、auto关键字的使用、initializer_list的作用,以及C++11中范围for和指针空值nullptr的特性,展示了C++11对编程的简化和提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

👦个人主页:@Weraphael
✍🏻作者简介:目前学习C++和算法
✈️专栏:C++航路
🐋 希望大家多多支持,咱一起进步!😁
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨


一、统一的列表初始化

1.1{}初始化

C++98标准中,允许使用花括号{}数组或者结构体对象进行统一的列表初始值设定。比如:

在这里插入图片描述

但在C++11中扩大了用花括号{}括起的列表的使用范围,使其可用于所有的内置类型类类型(一切皆可用{}初始化),而类可以使用花括号{}初始化本质是在调用了默认构造函数初始化对象

class MyClass
{
   
public:
	MyClass(int a = 0, int b = 0)
		:_a(a)
		,_b(b)
	{
   
		cout << "调用了MyClass的默认构造函数" << endl;
	}

	int _a;
	int _b;
};

int main()
{
   
	int a = {
    1 }; // 内置类型
	cout << a << endl;

	// 老式写法
	MyClass c1(1, 2);
	cout << c1._a << " " << c1._b << endl;

	// C++11
	MyClass c2 = {
    1,2 }; // 类对象
	cout << c2._a << " " << c2._b << endl;

	return 0;
}

【程序结果】

在这里插入图片描述

从上看出,C++11还支持多参数隐式类型转换

当然了,C++11还支持使用初始化列表时,可不添加赋值符号=

class MyClass
{
   
public:
	MyClass(int a = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值