From 9fd6cbc766461a221d97627a276947437244fbf6 Mon Sep 17 00:00:00 2001 From: alarak233 <65578772+alarak233@users.noreply.github.com> Date: Wed, 22 Sep 2021 13:43:27 +0800 Subject: [PATCH] =?UTF-8?q?Update=202.=E5=8F=8B=E5=85=83=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E7=AC=A6=E5=AE=9E=E7=8E=B0.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重载*时缺少return。。。 --- .../day7/二元运算符/2.友元运算符实现.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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;