我想通過使用現有數據(半徑,寬度和高度)來計算圓和矩形的面積。但我有一些錯誤,我希望你能幫我修復它。getArea()函數需要幫助
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Shape
{
public:
virtual void Draw() = 0;
virtual void MoveTo (int newx, int newy) = 0;
virtual int GetArea()const = 0;
};
class Rectangle : public Shape
{
public:
Rectangle (int x, int y, int w, int h);
virtual void Draw();
virtual void MoveTo (int newx, int newy);
int GetArea() {return height * width;}
private:
int x, y;
int width;
int height;
};
void Rectangle::Draw()
{
cout << "Drawing a Rectangle at (" << x << "," << y
<< "), width " << width << ", height " << height << "\n";
};
void Rectangle::MoveTo (int newx, int newy)
{
x = newx;
y = newy;
}
Rectangle::Rectangle (int initx, int inity, int initw, int inith)
{
x = initx;
y = inity;
width = initw;
height = inith;
}
class Circle : public Shape
{
public:
Circle (int initx, int inity, int initr);
virtual void Draw();
virtual void MoveTo (int newx, int newy);
int GetArea() {return 3.14 * radius * radius;}
private:
int x, y;
int radius;
};
void Circle::Draw()
{
cout << "Drawing a Circle at (" << x << "," << y
<< "), radius " << radius <<"\n";
}
void Circle::MoveTo (int newx, int newy)
{
x = newx;
y = newy;
}
Circle::Circle (int initx, int inity, int initr)
{
x = initx;
y = inity;
radius = initr;
}
int main()
{
Shape * shapes[2];
shapes[0] = new Rectangle (10, 20, 5, 6);
shapes[1] = new Circle (15, 25, 8);
for (int i=0; i<2; ++i) {
shapes[i]->Draw();
shapes[i]->GetArea();
}
return 0;
}
而你的編譯爲C++,C _and_ C#和那裏的錯誤是? – 2009-11-17 07:26:32
那麼,有什麼錯誤? – Huppie 2009-11-17 07:31:20
你真的有什麼問題?請粘貼錯誤輸出,或給出更清晰的問題。 – Shamster 2009-11-17 19:56:35