我为一个面向对象的 C++ 类中的赋值编写了一个小程序,我必须在其中编写一个显示复数大小的函数。以这种方式编写时它可以工作,我知道如何在参数中不带参数的情况下编写它,但我想知道代码是否存在功能问题(调用对象和参数是同一个对象)。
// displays the magnitude of a complex number
void Complex::magnitude(Complex c) const {
cout << "\nMagnitude of "; c.display(); cout << " = ";
cout.precision(3); cout.setf(std::ios::fixed, std::ios::floatfield);
cout << sqrt(pow(static_cast<double>(c.real), 2) +
(pow(static_cast<double>(c.imag), 2)) ) << "\n";
} // end function magnitude
这是以 c1 作为调用对象和参数的冗余部分:
c1.magnitude(c1);
我知道如何在没有 c1 的情况下编写此代码作为幅度()的参数,而我所要做的就是删除参数并删除“c”。从函数中,它仍然可以正常工作。我的问题很简单,当这样编写程序时,这在功能上是否存在问题?