c++问题

来源:互联网 发布:苹果电脑没有mac系统 编辑:程序博客网 时间:2024/05/06 01:31


vector 将其单参数的构造函数定义成explicit 而string则不是 原因是什么?

//参数类型到类类型的自动转换是否有意义依赖于程序员的看法,如果是自然的
//就不应该加explicit   如果语义相距较远,则必须加

string接收的单参数是const char *,我们得到一个常量字符串数组,把他看做是
string是自然的过程,编译器自动转换合乎逻辑
与string相反,vector<int>则相反,原意是指定vector的容量,如果用一个int值初始化
和愿意相距甚远,所以必须加explicit

聚合类的条件
class Sales_data
{
 string bookNo;
 unsigned units_sold=0;
 double revenue=0;
};
Sales_data item={"978-059035",25,15.99};//报错,因为聚合类初始化必须满足一些非常苛刻的
//条件,其中的一项是没有类内初始值

0 0
原创粉丝点击