摘要:
引言C++的“=”实际有很多很多陷阱。在大部分情况下,“=”表示赋值,尤其是C语言学过来的,更有这样的体会。以下两者的执行结果是等效的:// 示例Aint a = 3;// 示例Bint a;a = 3;难免会有直观的认识,int a = 3 中,首先创建一个int的名为a的对象,然后将3赋值给a。而示例B中,将这一过程拆分成了两部。↑↑恩,万恶的根源↑↑C++中“=”的语义分类“=”其实有两种作用:1. 参与构造;2. 赋值。参与构造类似于初始化,是狭义的初始化(或者是说协助定义,异或有其他更好的说法?)——在一些场合,对从未赋值过的对象进行第一次赋值,也叫做初始化——而这里的“初始化”仅指 阅读全文