l 赋值仅发生在调用赋值运算符时, l 初始化涉及较广,包括声明变量、函数返回、参数传递、异常捕捉。 对于built-in类型,int、char、double、float等,赋值和初始化没有什么不同,都是向指定内存中复制数值。 但是对于用户自定义的类型,则有更多的事情要做,特别是类对象,赋值操作在通常情况下是先将当前对象析构,然后再根据右值重新构造新的对象。