C++期末大作业,菜鸟一只,也不知道写的对不对,麻烦帮忙看一下,蟹蟹
题目要求:a、将三角形、矩形、圆形等形状封装成相应的类;b、实现相应图形的构造函数;
c、将计算相应图形的周长和面积函数封装成类的成员函数;
d、在main函数中分别输入相应图形的参数构造相应图形的对象,计算相应图形的周长和面积并输出。
#include<iostream>
#include<cmath>
using namespace std;
class Graph
{
public:
Graph(int a,int b,int c)
{
x=a;
y=b;
z=c;
}
Graph(int a,int b)
{
x=a;
y=b;
}
Graph(int a)
{
x=a;
}
double perimeter(int a,int b,int c)
{
return a+b+c;
}
double perimeter(int a,int b)
{
return 2*a+2*b;
}
double perimeter(int a)
{
return 3.14*2*a;
}
double area(int a,int b,int c)
{
double p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
double area(int a,int b)
{
return a*b;
}
double area(int a)
{
return 3.14*a*a;
}
private:
int x;
int y;
int z;
};
int main()
{
int a,b,c;
cin>>a>>b>>c;
Graph A(a,b,c);
cout<<A.perimeter()<<' '<<A.area()<<endl;
return 0;
}
编译时红色代码行报错显示error: no matching function for call to Graph: perimeter O 求解答哪里出的问题
另外,题目求不同图形的周长和面积我的想法是函数重载,但是我感觉“cin>>a>>b>>c;”这一句输入参数进行重载好像不太对,但是自己又想不出什么好办法,希望大佬帮忙指正。