Инициализируйте ссылочный член stringstream в списке инициализации конструктора, используя ничто

Я попытался инициализировать ссылочный элемент 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»: должен быть инициализирован в базе конструктора / инициализаторе члена

Нужно ли инициализировать все переменные в списке инициализации?
Поскольку я не передаю какую-либо строковую ссылку на конструктор, как мне ее инициализировать? Или, если я не хочу его инициализировать, оставьте это поле пустым. Как мне это сделать?

0

Решение

Отзывы участников должен быть инициализирован. Вы не хотите ссылку, вы хотите указатель.

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)
{}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]