Как заполнить массив своего типа данных С++

Возможно я делаю большую глупость. Извините за неточные объяснения

Главная задача в том, что бы создать массив своего типа данных. Затем заполнить его целочисленными значениями.

Я создал свой класс TDV. Объявил в нём массив R типа TDV. Как мне присвоить элементам массива значения типа int? Я новичок и только учусь,но информацию на форумах не нашёл или не понял, что нашёл то, что нужно.

<h файл>

class TDV {
private:
  int n;
  TDV* R;

public: 
  TDV();
  ~TDV();
  int DV();

<cpp файл>

TDV::TDV() {
  
  R = new TDV[n];

}

TDV::~TDV() 
{
    delete[]R;
}


int TDV::DV()
{
  
 
  for (int i = 0; i < n; i++) {
    R[i] = 1;
  }

Есть код на C#, там без проблем присваиваю этой строкой

R[i] = rnd.Next(-150, 150);

Ответы (1 шт):

Автор решения: Rikitikitavi

Вот у вас есть тип

 class TDV
 {
 private:
    int n;
 public: 
    TDV();
   ~TDV();
 }

Который представляет целочисленные данные, содержа в себе фундаментальный целочисленный тип данных int. (Для чего вы так делаете оставим пока в стороне).

Теперь вам нужно заполнить массив этим классом, можно сделать так:

 std::vector<TDV> v;
 v.push_back(TDV());
 v.push_back(TDV());

теперь у вас вектор из двух элементов типа TDV. Или можно так:

 TDV* v = new TDV[2];
 v[0] = TDV();
 v[1] = TDV();
 //do smth
 delete[] v;

Теперь как сделать так чтобы ваш класс TDV содержал определенное число? Сейчас при инициализации объекта типа TDV он инициализируется мусором. Если переписать конструктор так:

   TDV(int value)
   {
       n = value;
   }

То можно уже писать так:

 TDV* v = new TDV[2];
 v[0] = TDV(1);
 v[1] = TDV(2);
 //do smth
 delete[] v;
→ Ссылка