codecamp

C++ 输出

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

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

C++ 访问函数(Accessor functions)
C++ 复数相关函数(一)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }