Как динамически добавлять новый объект во время выполнения в массиве объектов C ++ и печатать их - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть точка класса.

У меня есть вызов события onPoint change.Это может произойти любое количество раз.В каждом случае новая точка дается событием.Поэтому я не знаю заранее, как можно распределять баллы заранее.Это может быть только 1 2 или сотни.

Так что я подумал об использовании динамического выделения памяти.Поэтому я создал указатель p типа Point.

Я выделил эталонную память точкой: * p = (point *) malloc (sizeof (p));

Внутри основного метода первыйточка вставлена ​​(0, 0).Все остальные точки вставляются в событие onPointChange.

Теперь я хочу, чтобы точки, обнаруженные в событии onPointChange, добавлялись в мой указатель (p), а также сохранялись все его предыдущие значения.И наконец напечатайте их.

#include <iostream>
#include <string>
#include <array>

using namespace std;

class point {
    public:
    int x;
    int y;
};

point* p = (point*)malloc(sizeof(p));
int main()
{
   p.x =0;
   p.y =0;

  // Now all other points to be filled in onPointChange event
}

void onPointChange(){
 point newpoint;
 newpoint.x = newXValue;
 newpoint.y = newYValue;
 // Here I need to reallocate my pointer p such that the new point (newpoint) is appended to the p and also all of its earlier elements are preserved.
// And after meeting any condition, print the value of x and y of all points in p
}

1 Ответ

0 голосов
/ 20 сентября 2018

Вы не можете «добавить» указатель.Вы можете использовать std::vector для сохранения точек по мере необходимости, а затем распечатывать точки в векторе, когда ваше условие выполнено.

...