profile
Размещено 2 года назад по предмету Информатика от bulhakov

(Код С++)(ООП) Найти и обосновать ошибку в коде
Complex &cref, n, x;
cref=&n;
&cref=x;

  1. Ответ на вопрос
    Ответ на вопрос дан alexshor

    Ответ:

    Объяснение:

    Здесь ошибка на ошибке, давайте разбираться. Имеется класс Complex и мы создаем объекты этого класса. Правильное создание объектов класса выглядит так:

    Complex n,x;

    Запись в первой строке:

    Complex &cref;

    Указывает компилятору, что не надо создавать объект, а надо создать ссылку на объект, при этом ссылка должна сразу быть инициализирована! В этой же строке. Т.е. вот такая запись будет корректной:

    Complex n,x;

    Complex &cref=n;

    В этом случае объект cref не будет создан, cref будет ссылаться на объект n.

    Дальше вторая строка:

    cref=&n;

    Запись &n возвращает указатель на объект, т.е. Complex*, с указателем также можно работать как и со ссылкой, но в отличии от записи Complex &cref запись Complex *cref не обязательна к инициализации и может быть нулевой:

    Complex n,x;

    Complex *cref=0;

    cref=&n;

    Ну и наконец третья строка:

    &cref=x;

    В левой части записана операция получения указателя на объект cref (Complex*), этот указатель нельзя менять: слева от знака равенства должно располагаться "изменяемое" значение (lvalue)

    Непонятно, что хотел автор. Если хотелось изменить значение, на которое указывает cref, то надо записать так:

    *cref=x;

    В этом случае значение x будет скопировано туда, куда указывает указатель cref. Полный код в этом случае:

    Complex n,x;

    Complex *cref=&n;

    *cref=x;

    После этого значение n станет равным x.

    Или другой вариант: если хотелось, чтобы указатель cref указывал на объект x, то надо записать так:

    cref=&x;

    После этого cref будет указывать на объект x.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.