diff --git a/practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp b/practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp index a808988..11f36bf 100644 --- a/practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp +++ b/practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp @@ -1,16 +1,16 @@ /* -C++ı׼ռstdԤ˸Complex -ͨԪComplexĸ㣬ص+-*/ -ʹusing namespace stdstdֿռ뱾 -򱾳еComplexstdֿռеComplexغͻ +在C++的标准命名空间std中预定义了复数类Complex, +并且通过友元重载了Complex的各种运算,包括本程序中重载的+、-、*、/。 +若使用using namespace std将std名字空间引入本程序, +则本程序中的Complex将与std名字空间中的Complex类的运算符重载函数产生冲突,引起编译错误。 */ /* -ڲҪֵҿԽ+-*/ -÷dzԱʽԪͨʵ֡ +对于不要求左值且可以交换参数次序的运算符(如+、-、*、/ 等运算符), +最好用非成员形式(包括友元和普通函数)的重载运算符函数实现。 */ -//ǰ2+b⡣ +//解决前面的2+b问题。 #include @@ -44,6 +44,7 @@ Complex operator*(Complex a, Complex b){ Complex t; t.r = a.r*b.r-a.i*b.i; t.i = a.r*b.i+a.i*b.r; + return t; } Complex operator/(Complex a, Complex b){ Complex t;