用花专题

【C++】 用花括号初始化和用括号初始化有什么区别?

比如下面这个问题 long double ld=3.1415926536; int a{ld},b={ld}; //错误,转换未执行,因为存在丢失信息的危险 int c(ld),d=(ld); //正确,转化执行,且确实丢失了部分值 为什么会提示 “a”本地函数定义是非法的,而c,d却又没问题呢?这跟a用花括号定义有什么联系? ()是调用了类型的构造函数初始化,对于内置类型来说,编译器有默