Я попытался инициализировать ссылочный элемент stringstream без каких-либо указаний, сказав, что я хочу, чтобы он ссылался на null или просто оставил его без инициализации.
.файл hpp
class Class{
private:
int n;
stringstream& css;
public:
Class(int n);
Class(stringstream& ss, int i);
};
.файл cpp
Class::Class(int n)
: n(n)
{}
Компилятор выдает:
Ошибка 1 ошибка C2758: «Class :: css»: должен быть инициализирован в базе конструктора / инициализаторе члена
Нужно ли инициализировать все переменные в списке инициализации?
Поскольку я не передаю какую-либо строковую ссылку на конструктор, как мне ее инициализировать? Или, если я не хочу его инициализировать, оставьте это поле пустым. Как мне это сделать?
Отзывы участников должен быть инициализирован. Вы не хотите ссылку, вы хотите указатель.
class Class{
private:
int n;
stringstream* css;
public:
Class(int n);
Class(stringstream& ss, int i);
};
Class::Class(int n)
:n(n), css(nullptr)
{}
Class::Class(stringstream& ss, int i)
:n(i), css(&ss)
{}
Других решений пока нет …