LINUX.ORG.RU

История изменений

Исправление DELIRIUM, (текущая версия) :

Пробовал на struct: отличие же только в приватности по умолчанию. Да, оказывается, что если объявить ссылку приватной и обязательно добавить конструктор с её инициализацией, то можно.

Ничего не понял. Почему обязательно приватной?

struct A
{
    int &a_;
    A(int& a) : a_(a) {}
};

int main() {
    int b = 123;
    A a(b);
}

Ключевой момент в том, что ссылка должна быть инициализирована, а квалификаторы доступа тут не при чем.

Исходная версия DELIRIUM, :

Пробовал на struct: отличие же только в приватности по умолчанию. Да, оказывается, что если объявить ссылку приватной и обязательно добавить конструктор с её инициализацией, то можно.

Ничего не понял. Почему обязательно приватной?

struct A
{
    int &a_;
    A(int& a) : a_(a) {}
};

int main() {
    int b = 123;
    A a(b);
}

Ключевой момент в том, что ссылка должна быть инициализирована, а квалификаторы доступа тут не при чем.

УМВР