我有这个代码来计算形状的面积。我不明白为什么我会收到错误"在' double'"之前预期不合格的ID和#34;期望(在双&#34之前;在第44行为"类三角::三角形(双s1,双s2,双s3):多边形(s1,s2,s3,0.0){}。& #34;非常感谢任何帮助。提前谢谢。
#include "Polygon.h"
#include <iostream>
#include <cmath>
using namespace std;
//Polygon constructor
Polygon :: Polygon(double side1, double side2, double side3, double side4)
{
s1 = side1;
s2 = side2;
s3 = side3;
s4 = side4;
}
//get area method
double Polygon :: getArea()
{
float length, width, area;
if (s1 == s2)
{
length = s1;
width = s3;
}
else if (s1 == s3)
{
length = s1;
width = s2;
}
else if (s1 == s4)
{
length = s1;
width = s3;
}
area = length * width;
return area;
}
//Triangle class
class Triangle :: Triangle(double s1, double s2, double s3) : Polygon(s1, s2, s3, 0.0) {}
double Triangle :: getArea()
{
float s, area;
s = (s1 + s2 + s3)/2;
area = sqrt(s * (s - s1) * (s - s2) * (s - s3));
return area;
}
答案 0 :(得分:2)
您需要在此处删除class
这个词:
class Triangle :: Triangle
当然,您需要确保在此之前声明class Triangle
。
答案 1 :(得分:-1)
使用以下代码段。
#include "Polygon.h"
#include <iostream>
#include <cmath>
using namespace std;
//Polygon constructor
Polygon :: Polygon(double side1, double side2, double side3, double side4)
{
s1 = side1;
s2 = side2;
s3 = side3;
s4 = side4;
}
//get area method
double Polygon :: getArea()
{
float length, width, area;
if (s1 == s2)
{
length = s1;
width = s3;
}
else if (s1 == s3)
{
length = s1;
width = s2;
}
else if (s1 == s4)
{
length = s1;
width = s3;
}
area = length * width;
return area;
}
//Triangle class
Triangle :: Triangle(double s1, double s2, double s3) : Polygon(s1, s2, s3, 0.0) {}
double Triangle :: getArea()
{
float s, area;
s = (s1 + s2 + s3)/2;
area = sqrt(s * (s - s1) * (s - s2) * (s - s3));
return area;
}