帮忙看一个C++程序 我调试 有一个错误 自己改不来~~

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:04:21
//一个三角形类 Triangle 三条变长 a b c 为私有成员变量,有一个重载函数运算符“+”, 要求面积相加。

#include <iostream>
#include <math.h>
using namespace std;

class Triangle
{
int a,b,c;
double area;

public:
Triangle (int i,int j,int k)
{
a=i;
b=j;
c=k;
s=(a+b+c)/2;
area=sqrt(s*(s-a)(s-b)(s-c));
}

void disparea()
{cout<<"area="<<area<<endl;}

friend double operator + (Triangle t1,Triangle t2)

{return t1.area+t2.area;}

};

void main ()
{
Triangle t1(3,4,5),t2(4,5,6);
double s;
cout<<"t1的面积是 "<<t1.s<<endl;
cout<<"t2的面积是 "<<t2.s<<endl;
s=t1+t2;
cout<<"总面积是 "<<s<<endl;
}
//一个三角形类 Triangle 三条变长 a b c 为私有成员变量,有一个重载函数运算符“+”, 要求面积相加。

#include <iostream>
#include &

#include<iostream>
#include<math.h>

using std::cout;
using std::cin;
using std::endl;

class triange
{
unsigned int a,b,c;
public:
triange(unsigned int x=0,unsigned int y=0,unsigned int z=0):a(x),b(y),c(z){}
inline double area() const
{
double s=(a+b+c)/2.0;
return sqrt(s*(s-a)*(s-b)*(s-c));
}
inline double operator+(const triange& t)
{
return (area()+t.area());
}
};

int main()
{
triange a(3,3,3);
triange b(4,4,4);
cout<<a.area()<<endl;
cout<<a+b<<endl;
return EXIT_SUCCESS;
}

你的t1.s是什么啊?
在Triangle类里面没有定义s就用上了

你这样改虽然是定义了,但是s是私有成员,不能t1.s这样使用。

构造函数中出现了不是成员函数的数据成员

Triangle (int i,int j,int k)
{
a=i;
b=j;
c=k;
s=(a+b+c)/2;
area=sqrt(s*(s-a)(s-b)(s-c));
这里面的s在类中没有声明,s不是类的数据成员.这个是明显错误