#include
using namespace std;
class triangle
{private:double x;
double y;
double z;
public:triangle(double a,double b,double c)
{x=a;y=b;z=c;}
triangle();
void input()
{cin>>x>>y>>z;}
double area1()
{
if(x+y>z||x+z>y||y+z>x)
{ double s,p;
p=x+y+z;
s=sqrt((p-x)(p-y)(p-z));//海伦公式求三角形面积
return s;
}
else return 0;}
};
class three:public triangle
{private: double h,a,b,c;
public:three(double x,double y,double z,double d):triangle(x,y,z)
{h=d;}
three();
void input(){cout<
double area2(){return area1()*h;}
};
void main()
{ triangle t1;
t1.input();
cout<
three t2;
t2.input();
cout<
}
你的代码存在2个问题:
我都帮你改了,代码见下方:
#include <iostream>
#include <cmath>
using namespace std;
class triangle
{
protected:
double x;
double y;
double z;
public:
triangle();
~triangle();
triangle(double a, double b, double c);
public:
void input();
double area1();
};
triangle::triangle()
{
}
triangle::~triangle()
{
}
triangle::triangle(double a, double b, double c)
{
x = a;
y = b;
z = c;
}
void triangle::input()
{
cin >> x >> y >> z;
}
double triangle::area1()
{
if (x + y > z || x + z > y || y + z > x)
{
double s, p;
p = (x + y + z) / 2.0;
s = sqrt(p * (p - x) * (p - y) * (p - z)); //海伦公式求三角形面积
return s;
}
else
return 0;
}
class three : public triangle
{
private:
double h;
public:
three();
~three();
three(double x, double y, double z, double d);
public:
void input();
double area2();
};
three::three()
{
}
three::~three()
{
}
three::three(double x, double y, double z, double d) : triangle(x, y, z)
{
h = d;
}
void three::input()
{
triangle::input();
cin >> h;
}
double three::area2() { return area1() * h; }
int main()
{
triangle t1;
t1.input();
cout << t1.area1() << endl;
three t2;
t2.input();
cout << t2.area2() << endl;
return 0;
}