我已經創建了一個使用poly和繼承的項目。 基類是「形狀」,派生是「圓」和「多邊形」,其中「三角形」和「矩形」由「多邊形」 派生,此外我需要創建一個類點將初始化每個形狀構造函數使用Point對象。C++派生類,繼承和對象poly
創建了兩點 - 點o(0,0),點a(0,1) 和一個新的圓形'形狀'創建 - 新Circle(o,a) 即時試圖計算面積方式: a.getX() - a.getY()[這是半徑] * 3.14
的main.cpp
#include <iostream>
#include "Point.h"
#include "Shape.h"
#include "Circle.h"
using namespace std;
void main()
{
Point o(0,0);
Point a(0,1);
Point b(1,0);
Shape *shapes[]=
{
new Circle (o,a)
new Rectangle(a,b);
new Triangle (o,a,b);
};
cout<<" area= "<<shapes[0]->area();
//should print pt1.getY()-pt0.getY() * 3.14
}
shape.h
#ifndef SHAPE_H
#define SHAPE_H
class Shape
{
public:
virtual double area() const= 0;
};
#endif
circle.h
#ifndef CIRCLE_H
#define CIRCLE_H
#include "Shape.h"
#include "Point.h"
class Circle:public Shape
{
public :
Circle(Point pt0,Point pt1);
double area();
private :
Point pt0, pt1;
};
#endif
circle.cpp
#include "Circle.h"
#include "Point.h"
Circle::Circle(Point pt0,Point pt1)//(o,a) from the main
{
this->pt0=pt0;
this->pt1=pt1;
}
double Circle:: area()
{
return pt1.getY()-pt0.getY() * 3.14;
}
這是很多的代碼,沒有問題。 –
不應該在圓形類中只包含一箇中心點和半徑點? – Valentin
@Valentin - 這是給定的main.cpp,我需要按原樣使用它。 –