🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们定义了一个新的类通常会想将其对象以可读的形式输出出来。对于复数对象,我们使用这样两个函数: ~~~ void Complex::printCartesian () { cout << getReal() << " + " << getImag() << "i" << endl; } void Complex::printPolar () { cout << getMag() << " e^ " << getTheta() << "i" << endl; } ~~~ 在此我们不必担心不同象限的表达方式就可以输出任何复数对象。因为两个输出函数使用了访问函数,程序会自动计算需要的值。 以下代码使用第二个构造函数来创建一个复数对象,他只是是以笛卡尔坐标系的形式。 当我们调用到printCartesian时,不必做任何转换即可直接访问real 和imag。 Complex c1 (2.0, 3.0); c1.printCartesian(); c1.printPolar(); 当我们调用到printPolar,时,后者会调用getMag,程序会进行极坐标系转换并将结果保存到变量中。这种转换只需一次。当printPolar调用getTheta时,就会看到极坐标系的数值已经是有效的了,直接返回即可。 以上代码的输出为: 2 + 3i 3.60555 e^ 0.982794i我们定义了一个新的类通常会想将其对象以可读的形式输出出来。对于复数对象,我们使用这样两个函数: ~~~ void Complex::printCartesian () { cout << getReal() << " + " << getImag() << "i" << endl; } void Complex::printPolar () { cout << getMag() << " e^ " << getTheta() << "i" << endl; } ~~~ 在此我们不必担心不同象限的表达方式就可以输出任何复数对象。因为两个输出函数使用了访问函数,程序会自动计算需要的值。 以下代码使用第二个构造函数来创建一个复数对象,他只是是以笛卡尔坐标系的形式。 当我们调用到printCartesian时,不必做任何转换即可直接访问real 和imag。 Complex c1 (2.0, 3.0); c1.printCartesian(); c1.printPolar(); 当我们调用到printPolar,时,后者会调用getMag,程序会进行极坐标系转换并将结果保存到变量中。这种转换只需一次。当printPolar调用getTheta时,就会看到极坐标系的数值已经是有效的了,直接返回即可。 以上代码的输出为: 2 + 3i 3.60555 e^ 0.982794i