首页 > 编程语言 > 详细

C++列表初始化

时间:2015-05-20 09:53:25      阅读:195      评论:0      收藏:0      [点我收藏+]

在C++11中,使用花括号来初始化变量得到全面的应用,也可以用花括号来对变量赋值。当用于内置类型变量时,这种初始化的一个重要特点是如果使用列表初始化且初始值存在丢失信息的风险,编译器将报错。

int _tmain(int argc, _TCHAR* argv[])
{
	long double ld = 3.1415926536;

	int a{ ld };
	int b = { ld };
	int c(ld);
	int d = ld;

	return 0;
}
编译将得到以下错误:

(11): error C2397: 从“long double”转换到“int”需要收缩转换
(11): warning C4244: “初始化”: 从“long double”转换到“int”,可能丢失数据
(12): error C2397: 从“long double”转换到“int”需要收缩转换
(12): warning C4244: “初始化”: 从“long double”转换到“int”,可能丢失数据
(13): warning C4244: “初始化”: 从“long double”转换到“int”,可能丢失数据
(14): warning C4244: “初始化”: 从“long double”转换到“int”,可能丢失数据
可以看到编译器拒绝了a和b的初始化请求。


C++列表初始化

原文:http://blog.csdn.net/yamingwu/article/details/45850741

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!