Здравствуйте, у меня проблема с моим назначением, которое мне нужно, чтобы инициализировать базовый конструктор, который является многократным указателем в производном конструкторе, который является полигоном.
Полигон имеет как минимум 3 точки, каждая точка имеет значение координаты.У кого-нибудь есть идеи, как инициализировать базовый конструктор несколько раз в конструкторе init?Идеи наследования - это не мои идеи, это вопрос присваивания.
это вопрос
Полигон (конструктор) создает многоугольник с вершинами npoints, вершины берут свои значения из тех, которые хранятся вмассив точек.Обратите внимание, что точки массива не должны сохраняться;он может быть удален после вызова конструктора.
struct PointType
{
float x;
float y;
};
class Point
{
public:
Point(const PointType& center );
virtual ~Point();
private:
PointType m_center;
};
class Polygon : public Point
{
public:
Polygon(const PointType* points, int npoints);
~Polygon();
const VectorType& operator[](int index) const;
private:
int m_npoints;
Object::PointType * m_pt;
};
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include "Object.hpp"
using namespace std;
const float eps = 1e-5f;
bool Near(float x, float y)
{
return abs(x-y) < eps;
}
float frand()
{
return 10.0f*float(rand())/float(RAND_MAX);
}
int main()
{
srand(unsigned(time(0)));
int count = 0,
max_count = 0;
// Polygon tests
int n = 3 + rand()%8;
float *xs = new float[n],
*ys = new float[n];
float x = 0, y = 0;
PointType *Ps = new PointType[n];
for (int i=0; i < n; ++i) {
xs[i] = frand(), ys[i] = frand();
Ps[i] = PointType(xs[i],ys[i]);
x += xs[i], y += ys[i];
}
}
Point::Point(const PointType& center)
: m_center{center}
{
}
// this is wrong, can correct me how to construct it?
Polygon::Polygon(const PointType* points, int npoints, float depth)
:m_npoints{npoints} , m_pt{new Object::PointType[npoints]}, Point (*m_pt ,depth)
{
for(int i=0; i < m_npoints ; ++i)
{
m_pt[i] = points[i];
}
}
enter code here
это структура присваивания, такая как введите описание изображения здесь
Я забрал реализацию класса другого объекта