A b; (1)
A a=b; (2)
当我们执行上述(2)时,复制构造函数执行,因为此时,需要构造对象;
A c; (3)
c=a; (4)
当我们执行(4)时,重载的赋值运算符就会起作用了。
if(a==b) (5)
当我们执行语句(5)时,如果我们还未重载==运算符,编译器则报错。
总结:复制构造函数和赋值运算符,前者构造对象时执行,后者为已存在对象赋值时执行,而等号运算符用之前需要重载,而Java中对上述的处理,总结起来也一句,一切操作皆引用。
A b; (1)
A a=b; (2)
当我们执行上述(2)时,复制构造函数执行,因为此时,需要构造对象;
A c; (3)
c=a; (4)
当我们执行(4)时,重载的赋值运算符就会起作用了。
if(a==b) (5)
当我们执行语句(5)时,如果我们还未重载==运算符,编译器则报错。
总结:复制构造函数和赋值运算符,前者构造对象时执行,后者为已存在对象赋值时执行,而等号运算符用之前需要重载,而Java中对上述的处理,总结起来也一句,一切操作皆引用。