“赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。”
编译器会区别对待这两种操作,对于赋值则调用赋值操作符,对于初始化则调用拷贝构造函数(如果类中没有拷贝构造函数,则编译器会提供一个默认的拷贝构造函数,简单的赋值类中的成员。)
对于基本类型来说,差别不大;
对于用户自定义的类型来说,差别很大。
可参考:
http://student.csdn.net/link.php?url=http://www.cnblogs.com/chio/archive/2008/10/06/1305145.html
总结几点:
1、一般来说,初始化操作比赋值操作效率更高,更节省空间。
2、有些类型只能用初始化操作而不能用赋值。
3、初始化列表只能使用于简单的数据类型,如int,bool,string等,并且有一点要注意的是,成员初始化顺序只依赖与成员定义的顺序,而不是初始化列表中的顺序。