visual使用C++中的Point类创建一个类来计算圆的面积

visual Creating a class to calculate area of a circle using Point class in C++

本文关键字:计算 一个 中的 C++ 使用 Point 创建 visual      更新时间:2023-10-16

我正在尝试创建一个计算圆面积的类Circle。它使用一个初始化2个点的基本Point类,一个作为圆心,一个为圆上的点(又称半径),这些都是我得到的错误:

(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

也许我已经盯着if看了太久了,但如果有任何帮助,我将不胜感激。

#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);
}

此代码存在许多问题:

  • 类声明后缺少分号
  • pointCenter声明后缺少分号
  • 缺少pointRadius声明
  • 缺少"using namespace std"
  • 构造函数的两个不同函数接口(带const和不带const)
  • 不能在const函数中修改areaOfCircle

解决以上问题将使代码能够编译(但之后还有更多问题需要解决)。

您声明您的构造函数接受

class Circle {
    ...
    Circle(Point const&, Point const&);
    ...
};

但您将其定义为采用非const引用:

Circle::Circle(Point&, Point&) {
     ...
}

这行不通。

顺便说一句,如果你想计算一个值的平方,那么使用x * x比使用std::exp(x, 2)要好得多!后一个功能相当复杂,而且通常没有那么快。