Как заполнить массив своего типа данных С++
Возможно я делаю большую глупость. Извините за неточные объяснения
Главная задача в том, что бы создать массив своего типа данных. Затем заполнить его целочисленными значениями.
Я создал свой класс 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 шт):
Вот у вас есть тип
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;