C++ 重载*=对于复数
我很难记下a函数(a+bi)*(c+di)的算法,它与重载运算符(*=)的(ac bd)+(ad+bc)相同 到目前为止,我已经为我的重载函数准备了这个。对于重载*=的定义,我不知道写什么来包含(ac-bd)的-bd部分C++ 重载*=对于复数,c++,class,numbers,C++,Class,Numbers,我很难记下a函数(a+bi)*(c+di)的算法,它与重载运算符(*=)的(ac bd)+(ad+bc)相同 到目前为止,我已经为我的重载函数准备了这个。对于重载*=的定义,我不知道写什么来包含(ac-bd)的-bd部分 #包括 使用std::cout; 使用std::cin; 使用std::endl; 阶级情结{ 公众: 复合(双=0,双=0); void print()const{cout您可以使用std::tie和std::make_tuple执行多重赋值: std::tie(real,
#包括
使用std::cout;
使用std::cin;
使用std::endl;
阶级情结{
公众:
复合(双=0,双=0);
void print()const{cout您可以使用std::tie
和std::make_tuple
执行多重赋值:
std::tie(real, imag) = std::make_tuple(real*z.real - imag*z.imag,
real*z.imag + imag*z.real);
return *this;
您可以使用std::tie
和std::make\u tuple
执行多重赋值:
std::tie(real, imag) = std::make_tuple(real*z.real - imag*z.imag,
real*z.imag + imag*z.real);
return *this;
它本质上是*this=*this*z
的一个变体。我们通常用*=
来表达*
,但在这里相反是有意义的。它本质上是*this=*this*z
的变体。我们通常用*=
来表达*
,但在这里相反是有意义的。