哪位大哥知道这个C++程序错在哪了?

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:21:22
#include<iostream.h>
#include<stdlib.h>
class integer
{
public:
integer()
{
a=0;
}
integer(int a1)
{
if(a1>32767||a1<-32768)
{
cout<<"overflow!";
exit(0);
}
a=a1;
}
private:
int a;
};

class real
{
public:
real()
{
b=0;
}
real(double b1)
{
if(b1>3.4E38||b1<-3.4E38)
{
cout<<"overflow!";
exit(0);
}
b=b1;
}
private:
double b;
};

class intreal:public integer,public real
{
public:
intreal(int a1,double b1):integer(a1),real(b1)
{
c=a1+b1;
}
friend intreal operator +(intreal &c1,intreal &c2);
friend ostream &operator<<(ostream &output,intreal &);
private:
double c;
};

你intreal的构造函数要两个参数啊,可你的return intreal(c1.c+c2.c); 括号中才一个数,这怎么可以呢?
在intreal中加个构造函数就好
intreal(double x) { c = x;}
重载一下构造函数