Возникла проблема, у меня есть класс Figure и 2 его наследника при заполнении вектора элементами-объектами этих классов вместо корректно переданных координат выводится что-то непонятное, это не совсем мусор, подскажите в чём может быть проблема (Coutы поставил, там где нужно)
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;
const int rectArraySize = 4;
const int circArraySize = 3;
const int countOfFigure = 17;
const int R = 10;
class Figure {
public:
double* geometry;
double* speedyPointer;
Figure() {
};
virtual void move() {
};
virtual void rotate() {
};
//virtual ~figure() {
//cout << "DELETION";
//};
};
class Circle : public Figure {
public:
Circle(double centerCoordX, double centerCoordY, double radius) {
double circleMainArray[circArraySize] = { centerCoordX, centerCoordY, radius };
geometry = circleMainArray;
//cout << geometry[0] << '\n';
}
};
class Rectangle : public Figure {
public:
Rectangle() {
geometry = new double[rectArraySize];
geometry[0] = 0;
geometry[1] = 0;
geometry[2] = 0;
geometry[3] = 0;
}
Rectangle(double centerCoordX, double centerCoordY, double height, double width) {
double rectangleMainArray[rectArraySize] = { centerCoordX, centerCoordY, height, width };
geometry = rectangleMainArray;
}
};
int main() {
int squareSide = 100 * R;
srand(time(0));
//Circle* circleArray = new Circle[countOfFigure];
vector <Circle> circleArray;
vector <Rectangle> rectangleArray;
for (int i = 0; i < countOfFigure; i++) {
int currentFigure = rand() % 2 + 1;
switch (currentFigure) {
case 1:
{
int centerCoordX = R + rand() % (100 - R);
int centerCoordY = R + rand() % (100 - R);
//cout << centerCoordX << " " << centerCoordY <<" "<< R<< '\n';
Circle Cir(centerCoordX, centerCoordY, R);
cout << Cir.geometry[0] << endl;
circleArray.push_back(Cir);
}
case 2:
{
int height = R;
int width = R;
int centerCoordX = rand() % (100 - R / 2) + R / 2;
int centerCoordY = rand() % (100 - R / 2) + R / 2;
Rectangle rect(centerCoordX, centerCoordY, height, width);
rectangleArray.push_back(rect);
}
}
}
cout << circleArray[0].geometry[0] << " " << circleArray[0].geometry[1] << " " << circleArray[0].geometry[2] << typeid(circleArray[1]).name();
cout << rectangleArray[1].geometry[0] << " " << circleArray[1].geometry[1] << " " << circleArray[1].geometry[2] << typeid(rectangleArray[1]).name();
return 0;
}