Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这不起作用?(C+;+;)_C++ - Fatal编程技术网

C++ 为什么这不起作用?(C+;+;)

C++ 为什么这不起作用?(C+;+;),c++,C++,我有这个代码来计算形状的面积。我不明白为什么在“类三角形::三角形(双s1,双s2,双s3):多边形(s1,s2,s3,0.0){}”的第44行出现错误“预期在'double'之前的非限定id”和“预期(在double之前)”。任何帮助都将不胜感激。提前感谢 #include "Polygon.h" #include <iostream> #include <cmath> using namespace std; //Polygo

我有这个代码来计算形状的面积。我不明白为什么在“类三角形::三角形(双s1,双s2,双s3):多边形(s1,s2,s3,0.0){}”的第44行出现错误“预期在'double'之前的非限定id”和“预期(在double之前)”。任何帮助都将不胜感激。提前感谢

    #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;
    }
#包括“Polygon.h”
#包括
#包括
使用名称空间std;
//多边形构造函数
多边形::多边形(双面1、双面2、双面3、双面4)
{
s1=侧1;
s2=侧2;
s3=侧3;
s4=侧4;
}
//求面积法
双多边形::getArea()
{
浮子长度、宽度、面积;
如果(s1==s2)
{
长度=s1;
宽度=s3;
}
else如果(s1==s3)
{
长度=s1;
宽度=s2;
}
否则,如果(s1==s4)
{
长度=s1;
宽度=s3;
}
面积=长度*宽度;
返回区;
}
//三角形类
类三角形::三角形(双s1,双s2,双s3):多边形(s1,s2,s3,0.0){}
双三角形::getArea()
{
浮子,面积;
s=(s1+s2+s3)/2;
面积=平方米(s*(s-s1)*(s-s2)*(s-s3));
返回区;
}

您需要在此处删除单词
class

class Triangle :: Triangle

当然,您需要确保在此之前声明了
类三角形

#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;
    }
#包括“Polygon.h”
#包括
#包括
使用名称空间std;
//多边形构造函数
多边形::多边形(双面1、双面2、双面3、双面4)
{
s1=侧1;
s2=侧2;
s3=侧3;
s4=侧4;
}
//求面积法
双多边形::getArea()
{
浮子长度、宽度、面积;
如果(s1==s2)
{
长度=s1;
宽度=s3;
}
else如果(s1==s3)
{
长度=s1;
宽度=s2;
}
否则,如果(s1==s4)
{
长度=s1;
宽度=s3;
}
面积=长度*宽度;
返回区;
}
//三角形类
三角形:三角形(双s1,双s2,双s3):多边形(s1,s2,s3,0.0){}
双三角形::getArea()
{
浮子,面积;
s=(s1+s2+s3)/2;
面积=平方米(s*(s-s1)*(s-s2)*(s-s3));
返回区;
}

Class声明……这里之所以出现问题,是因为它解析为
Class(Triangle::Triangle)
而不是
(Class Triangle)::Triangle
。而
Triangle::Triangle
不是类。@BenVoigt这两个都无效(即使没有括号),相关语法为限定id,该语法被定义为嵌套名称说明符模板_opt unqualified id;而详细类型说明符不能是嵌套名称说明符的一部分