=和{}赋值区别

在C++11中,变量和类都可以用{}进行初始化

cpp 复制代码
class A
{
public:
	A(int i1,int i2)
	{
		m_i1 = i1;
		m_i2 = i2;
	}
private:
	int m_i1;
	int m_i2;
};
int main()
{
	A a ={1,2};
	A b{ 1,2 };
	int aa = {2};
	int bb{ 33 };
	return 0;
}

和=最重要的区别是可以防止窄化转换

cpp 复制代码
int aa{1.2}

将一个小数赋值给int会编译报错

而=会把小数转换为整型

相关推荐
一拳一个呆瓜1 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋2 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
神仙别闹2 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
WWTYYDS_6663 小时前
ProtoBuf超详细使用教程
c++
野生风长3 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++
雪的季节3 小时前
Python「假多态」与 C++「真多态」的核心区别
开发语言·c++
zmzb01034 小时前
C++课后习题训练记录Day166
开发语言·c++
皓月斯语4 小时前
程序设计语言的特点
开发语言·数据结构·c++
邪修king4 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
梓䈑10 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先