作者INsoarDEEP (green)
看板EE_DSnP
标题[问题] 关於第2题
时间Mon Oct 22 19:51:04 2007
Compiler跟我说Int main()里面的Circle::getPerimeter()没有matching function
但我不会修正,想请大家指点一下,感谢!
这是我的程式码
#include <iostream>
using namespace std;
class Circle
{public:
float getPerimeter(float a,int b,int c)
{cin >> a >> b >> c ;
cout << 2*a*3.14;
}
float getArea(float a,int b,int c)
{cin >> a >> b >> c ;
cout << 3.14*a*a ;
}
};
class Square
{public:
float getArea()
{cin >> d >> e >> f ;
cout << d*d;
}
float getPerimeter()
{cin >> d >> e >> f ;
cout << 4*d;
}
private:
float d;
int e,f;
};
int main()
{
float r1, r2;
int x1, y1, x2, y2;
cout << "Please enter the radius and center coordinates "
<< "for the circle (r/x/y): ";
cin >> r1 >> x1 >> y1;
cout << "Please enter the side length and center coordinates "
<< "for the Square (s/x/y): ";
cin >> r2 >> x2 >> y2;
Circle c1;
Square s2;
float p1 = c1.getPerimeter(), p2 = s2.getPerimeter();
if (p1 > p2)
cout << "Circle has larger perimeter (" << p1 << ") than "
<< "Square(“ << p2 << “)!!" << endl;
else
cout << "Circle has smaller perimeter (“ << p1 << “) than "
<< "Square(“ << p2 << “)!!" << endl;
float a1 = c1.getArea(), a2 = s2.getArea();
if (a1 > a2)
cout << "Circle has larger area (“ << a1 << “) than "
<< "Square(“ << a2 << “)!!" << endl;
else
cout << "Circle has smaller area (“ << a1 << “) than "
<< "Square(“ << a2 << “)!!" << endl;
return 0;
system ("pause");
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.236.234
1F:推 AlanLee76083:float getarea 没有return值 10/22 20:01
2F:推 ilway25:"getxxx" function 的意思你有点搞错了~ 10/22 20:17
3F:→ ilway25:恩还有constructor 10/22 20:18
4F:推 INsoarDEEP:可以麻烦大大解释一下吗?我真的不太懂 10/22 20:21
5F:推 ilway25:去翻翻老师上课讲义弄懂每一行吧..这很难用一两行字道尽.. 10/22 20:24
6F:→ ilway25:还有你把老师给的程式码改了... 10/22 20:26
7F:推 ally01202:getXXX的函数基本上没有输入值 10/22 20:46
8F:→ ally01202:所以要用constructer 直接从class里把变数拿来运算 10/22 20:47
9F:推 nicksxz:补充一点 相同的data不需要重复输入 10/22 21:12
10F:→ nicksxz:所以有些cin是不需要的 10/22 21:16
11F:→ nicksxz:另外就是cout和return是不一样的 要分清楚 10/22 21:18
12F:推 ric2k1:嗯, 除了以上各位的回答之外, 简单的说, 就是你 10/22 21:32
13F:→ ric2k1:Circle::getPerimeter() 不用传参数, 而是用 constructor 10/22 21:34
14F:→ ric2k1:被呼叫时存入的 data members 就好了 (好像跟上面的人说的 10/22 21:34
15F:→ ric2k1:一样...) 10/22 21:35
16F:推 INsoarDEEP:感谢大家的指点,我成功COMPILE,程式也能顺利跑了, 10/22 23:37
17F:→ INsoarDEEP:原来是有好多基本概念都不清楚,我要加把劲了 10/22 23:39