我现在已经实现了
#ifndef Ex_complex_h
#define Ex_complex_h
//类实现复数的四则运算
#include <iostream.h>
#include <iomanip.h>class Complex
{
public:
Complex();
void SetComplex(double,double); 
Complex ComplexAdd(Complex);
Complex ComplexMin(Complex);
Complex ComplexMul(Complex comp1);
    Complex ComplexDiv(Complex comp1);
void display();
private:
double RealPart;
double ImagPart;
};Complex::Complex()
{
RealPart=ImagPart=0.0;
}void Complex::SetComplex(double x,double y)
{
RealPart=x;
ImagPart=y;
}Complex Complex::ComplexAdd(Complex comp1)
{
Complex comp;
double x,y;
x=RealPart+comp1.RealPart;
y=ImagPart+comp1.ImagPart;
comp.SetComplex(x,y);
return comp;
}Complex Complex::ComplexMin(Complex comp1)
{
Complex comp;
double x,y;
x=RealPart-comp1.RealPart;
y=ImagPart-comp1.ImagPart;
comp.SetComplex(x,y);
return comp;
}Complex Complex::ComplexMul(Complex comp1)
{
Complex comp;
double x,y;
x=RealPart*comp1.RealPart-ImagPart*comp1.ImagPart;
y=ImagPart*comp1.RealPart+RealPart*comp1.ImagPart;
comp.SetComplex(x,y);
return comp;
}Complex Complex::ComplexDiv(Complex comp1)
{
Complex comp;
double x,y,z;
z=comp1.RealPart*comp1.RealPart+comp1.ImagPart*comp1.ImagPart;
x=(RealPart*comp1.RealPart+ImagPart*comp1.ImagPart)/z;
y=(ImagPart*comp1.RealPart-RealPart*comp1.ImagPart)/z;
comp.SetComplex(x,y);
return comp;
}void Complex::display()
{
cout<<RealPart<<(ImagPart>0?"+":"");
cout<<(ImagPart==0?"":"i")<<ImagPart<<endl;
}#endif
#include "Ex_complex.h"
void main()
{
Complex comp1,comp2,comp3,comp4,comp5,comp6;
comp1.SetComplex(2.3,4.5);
comp2.SetComplex(6.7,4.5);
comp1.display();
comp2.display();
comp3=comp1.ComplexAdd(comp2);
comp3.display();
comp4=comp1.ComplexMin(comp2);
comp4.display();
    comp5=comp1.ComplexMul(comp2);
comp5.display();
comp6=comp1.ComplexDiv(comp2);
comp6.display();
}
不过不知道是否真正体现了类的设计思想,
是否有更好的方法
哪位高手指教一二:)

解决方案 »

  1.   

    当作参数传入如:
    int MyFunc(CMyClass * ddd)
    {
    ...
    }
    CMyClass d;
    MyFunc(&d);
      

  2.   

    STL虽然我听说个这个STL,不过还不是很清楚究竟是什么,因为刚刚蹋入VC这个世界,其实也只能说是刚刚开始学习一些面向对象的设计思想(而且还只是局限于C++)所以恳请各位前辈多多指教,先在此谢过了!
      

  3.   

    这样的话使用重载操作符比较好,使用方便,符合习惯。
    看看
    http://www.umlchina.com/xprogrammer/issue/3/abstractclass.htm
    可能会有所帮助
      

  4.   

    重载操作符operator +,-,*,/same as:
    comp3=comp1+comp2;
    comp4=comp1-comp2;这个类属于纯运算类, 不宜带输出功能,display就免了吧。
      

  5.   

    oyf888(欧阳锋) :谢谢赐教,不过如果想输出
    那么怎么实现,外加输出语句吗?