这个应该是直接初始化和复制初始化。复制初始化使用=符号,而直接初始化将初始化式放在圆括号中。
当用于类类型对象时,初始化的复制形式和直接形式有所不同:直接初始化直接调用与实参匹配的构造函数,复制初始化总是调用复制构造函数。复制初始化首先使用指定构造函数创建一个临时对象,然后使用复制构造函数将那个临时对象复制到正在创建的对象。
c_1 a=10;调用的是重载=运算符函数,不是拷贝构造函数。你需要写一个operator=重载函数。
第一句话调用转换构造函数,因为10不是对象,要转换构造成对象。这个对象直接作为a对象,不需要再调用拷贝构造函数初始化给a,因为这是多此一举的。