ZhenyaMak
@ZhenyaMak
Писать качественный софт? Пфф, это не для меня.

Возможно ли присвоить «ничего» в ссылку?

Опишу задачу:
1. Есть поле структуры, ну допустим ref. Оно хранит ссылку на какую либо переменную.
2. Изначально переменная должна быть пустой, а в конструктор структуры должна приходить ссылка на переменную, и присваиваться в ref

Есть ли какой то способ сделать это? Или любой аналог - главное: инициализировать ссылку;
template<typename T>
struct Test
{
    T& ref;  // нужно присвоить null

    Test(const T& _ref) : ref(_ref) = default;
}


ps: может даже не структура, а класс
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Примерно то, что вам нужно - можно. Только ссылки никогда не бывают нулевыми. Поэтому вам надо во всех конструкторах класса ссылку чем-то инициализировать.

В вашем коде 2 проблемы. = default; можно писать, если у вас нет никакого списка инициализации. И константную ссылку нельзя использовать для инициализации неконстантной.

Вот такой код компилируется:
template<typename T>
struct Test
{
    T& ref;  // нужно присвоить null

    Test(T& _ref) : ref(_ref) {};
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы