2013-07-07 37 views
-2

我正在嘗試創建一個計算圓的面積的類Circle。它使用的初始化2點,一個爲中心,一個爲上圓(又名半徑),這些都是我得到了錯誤的點爲基點類:使用C++中的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 

也許我在,如果一直盯着太久長,但任何幫助,將不勝感激。

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

回答

6

有許多與此代碼問題:

  • 你缺少類聲明後一個分號。
  • pointCenter聲明後缺少分號。
  • 缺少pointRadius聲明
  • 缺少 「使用命名空間std」
  • 兩個不同的功能的接口的構造(具有和不具有常數)
  • areaOfCircle的不能在const函數

固定的被修改上面的問題會使代碼編譯(但是之後還有更多要解決的問題)。

1

你宣佈你的構造方法來

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

,但你定義它採取非const引用:

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

這是行不通的。

順便說一句,如果你想計算一個值的平方,使用x * xstd::exp(x, 2)好很多!後者的功能相當涉及,一般不如那麼快。