2012C++程序设计实验报告【7.3】

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:        类成员函数                
* 作    者:      王琳                      
* 完成日期:    2012     年 4    月   4日
* 版 本 号:    7-3

* 对任务及求解方法的描述部分
* 问题描述:该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定是double型的。可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型。

(1)要求类成员函数在类外定义。

(2)在此基础上,再实现减法、乘法和除法

* 程序头部的注释结束
*/

源程序:

#include <iostream>  

using namespace std;

template <class numtype>  

class Complex     
{  
public:  
    Complex( )  
    {  
        real=0;  
        imag=0;  
    }       
    Complex(double r,double i)  
    {  
        real=r;  
        imag=i;  
    }   
    Complex complex_add(Complex &c2);   
    void display( );     
private:  
    numtype real;   
    numtype imag;   
};

template <class numtype> 

Complex<numtype> Complex<numtype>::complex_add(Complex &c2)  
{  
    Complex<numtype> c;  
    c.real=real+c2.real;  
    c.imag=imag+c2.imag;  
    return c;  
} 

template <class numtype> 

void Complex<numtype>::display( )     
{  
    cout<<"("<<real<<","<<imag<<"i)"<<endl;  
}  

int main( )
{	
	Complex<int> c1(3,4),c2(5,-10),c3; 
	c3=c1.complex_add(c2);  
	cout<<"c1+c2="; 
	c3.display( );  
	Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6;  
	c6=c4.complex_add(c5);  
	cout<<"c4+c5="; 
	c6.display( ); 
	system("pause");
	return 0;
}


运行结果:

感想:各种方法,各种不同,各种纠结,归根结底还是得看课本啊!这个任务练习了类外定义函数,对基本方法还是有所了解了,有收获啊!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章