MyIds[] = { &TarConnId, &LocalConnId };
Дальше я передаю его в конструктор класа вот так:
IdsClass(MyIds);
Дальше принимаю его в конструкторе и пытаюсь им инициализировать поле класса вот так:
IdsClass(PrUserId* MyIds[])
: TarUsrIds(TarUsrIds)
{
...
private:
ProdUsrId** TarUsrIds = nullptr;
};
Но не получается. Никто не может подсказать как такое можно сделать правильно? (важно, чтобы MyIds был инициализирован двумя ссылками ( *какой-то тип* MyIds = { &TarConnId, &LocalConnId };) Суть в том, чтобы каким-то образом передать в класс указатель(или что-то другого типа), который будет указывать на два элемента, расположенных последовательно. Ну, чтобы можно было передать потом этот указатель и из како-то участка когда получить доступ к этим двумэлементам через MyIds[0], MyIds[1].
Почему бы просто не передать 2 указателя и не записать в 2 поля? Зачем магические числа [0] [1]
Ну, там не совсем магические числа. Там есть норм перебор всего этого. Просто апи принимает именно указатель, в котором должны находиться объекты.
Почему в твой конструктор не передан размер массива?
Передан, прост не указывал его конкретно тут.
Не получается - а, что? Проблем быть не должно...
Но проблемы всё равно есть.
В том, что ты поле самим собой инициализируешь?
Нет, в том, что такой вариант как описал не компилится на msvc. Если это можно как-то иначе сделать, то не мог бы кто подсказать как?
Перечитай свой конструктор для начала.
Если ты про это, то тут всё ок. Мне нужно его инициализировать "собой же".
И как ты себе это представляешь? Как оно должно работать? Поясню, ты написал примерно следующее: int a = a;
Ну я передаю что-то в класс над чем будет работать объект этого класса.
Обсуждают сегодня