#include "stdafx.h"
#include
#include
class complex
{
private:
double x,y,m,a,b,b2;
public:
complex(double xx=0,double yy=0){x=xx;y=yy;};
void Set1(double m){m=16*x*x+16*y*y;};
void Set2(double b2){b2=(-4*x+sqrt(m))/8;};
void Set3(double a){a=y/(2*sqrt(b2));};
void Set4(double b){b=sqrt(b2);};
void Show(){cout<<a<<"+"<<b<<"i";};
};
//int main(int argc, char* argv[])
int main()
{ complex z1(3,4);
z1.Show();
return 0;
}
个人感觉,你虽然构造了一个complex对象,但是后面的函数都没有调用,所以结果是未知的
z1.Show();,输出的a,b还没有通过方法计算出来,你要调用那些方法把a,b计算出来然后在输出
你没有给你的成员变量a,和b赋值,你只是给 x,y赋值了
class complex
{
private:
double x,y,m,a,b,b2;
public:
complex(double xx=0,double yy=0){x=xx;y=yy;};
void Set1(){m=16*x*x+16*y*y;};
void Set2(){b2=(-4*x+sqrt(m))/8;};
void Set3(){a=y/(2*sqrt(b2));};
void Set4(){b=sqrt(b2);};
void Show(){cout<<a<<"+"<<b<<"i";};
};
//int main(int argc, char* argv[])
int main()
{ complex z1(3,4);
z1.Set1();
z1.Set2();
z1.Set3();
z1.Set4();
z1.Show();
return 0;
}