【笔记】CPP 随笔
瞎几把写写。
Copy ctor & Overload of equal sign
等于号重载也有返回值,为了支持连等号操作。
1Fraction& Fraction::operator = (const Fraction &b) { 2 this -> numerator = b.numerator; 3 this -> denominator = b.denominator; 4 this -> quotient = b.quotient; 5 return *this; 6}
虽然理论上
void
也可行,但不支持连等。调用谁的问题
1Fraction f0(2, 3); 2Fraction f1(1, 3); 3Fraction f2 = f1; // Call the COPY CTOR! 4Fraction f3; f3 = f1; // Call the OVERLOAD PART!
编译器会优化类似于
f4 = f0 + f1
的语句。你会发现等号那里对应的拷贝构造函数并没有被「显式」地调用。