加载中...

14.5 输出


我们定义了一个新的类通常会想将其对象以可读的形式输出出来。对于复数对象,我们使用这样两个函数:

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


还没有评论.