我正在尝试创建一个计算圆的面积的类Circle
。它使用一个基本的Point类来初始化2个点,一个作为中心点,作为圆上的一个点(又称半径),这些是我得到的错误:
(25) error C2533: 'Circle::{ctor}' : constructors not allowed a return type
(25) error C2511: 'Circle::Circle(Point &,Point &)' : overloaded member function not found in 'Circle'
(12) : see declaration of 'Circle'
(46): fatal error C1004: unexpected end-of-file found
也许我一直在盯着,如果时间太久但是任何帮助都会受到赞赏。
#include <iostream>
#include <cmath>
#include "Point.h"
class Circle
{
public:
Circle(const Point &, const Point &);
float getArea() const;
private:
Point pCenter;
Point p1;
float areaOfCircle;
}
Circle::Circle(Point &pointC, Point &point1)
: pCenter(pointC), p1(point1)
{
}
float Circle::getArea() const
{
areaOfCircle = 3.14159 * pow(pCenter.distanceTo(p1),2);
return areaOfCircle;
}
int main()
{
Point pointCenter
cout << "The center point is at: " //pointCenter.getX() << ","
<< pointCenter.getY() << endl;
cout << "A point on the circle is at: " //pointRadius.getX() << ","
<< pointRadius.getY() << endl;
cin.ignore(2);
}
答案 0 :(得分:6)
此代码存在许多问题:
修复上述问题将使代码编译(但之后还有更多要解决的问题)。
答案 1 :(得分:1)
您声明了构造函数
class Circle {
...
Circle(Point const&, Point const&);
...
};
但您将其定义为采用非const
引用:
Circle::Circle(Point&, Point&) {
...
}
那不行。
顺便说一句,如果你想计算一个值的平方,那么使用x * x
比使用std::exp(x, 2)
要好得多!后一种功能相当复杂,通常不那么快。