请大家帮帮小弟啊该怎么处理
请大家帮帮小弟啊~~
#include<iostream>
#include<cmath>
using namespace std;
class Trig
{
public:
Trig(int i, int j, int k)
{x=i;y=j;z=k;}
int isTriangle()
{ if(x+y>z && x+z>y && y+z>x) return 1;
else return 0; }
friend double realArea(Trig &t) // 这里可去掉&,为什么最好要写上呢?
{return t.area();}
private:
double x, y, z;
double area()
{
double d=(x+y+z)/2;
d=sqrt(d*(d-x)*(d-y)*(d-z));
return d; }
};
int main()
{
int a,b,c;
cout<<"输入三角形的边长: "; cin>>a>>b>>c;
Trig t1(a,b,c);
if(t1.isTriangle())
cout<<"它的面积为: "<<realArea(t1)<<endl;
else cout<<"这不是一个三角形.\n";
return 0; }
------解决方案--------------------
引用传递参数可以避免不必要的拷贝(很多类的拷贝比较费时),但是使用引用可能带来副作用(被函数改变值),所以常引用是很好的选择
#include<iostream>
#include<cmath>
using namespace std;
class Trig
{
public:
Trig(int i, int j, int k)
{x=i;y=j;z=k;}
int isTriangle()
{ if(x+y>z && x+z>y && y+z>x) return 1;
else return 0; }
friend double realArea(Trig &t) // 这里可去掉&,为什么最好要写上呢?
{return t.area();}
private:
double x, y, z;
double area()
{
double d=(x+y+z)/2;
d=sqrt(d*(d-x)*(d-y)*(d-z));
return d; }
};
int main()
{
int a,b,c;
cout<<"输入三角形的边长: "; cin>>a>>b>>c;
Trig t1(a,b,c);
if(t1.isTriangle())
cout<<"它的面积为: "<<realArea(t1)<<endl;
else cout<<"这不是一个三角形.\n";
return 0; }
------解决方案--------------------
引用传递参数可以避免不必要的拷贝(很多类的拷贝比较费时),但是使用引用可能带来副作用(被函数改变值),所以常引用是很好的选择