Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
#1

Присвоение this иного указателя - C++

17.10.2013, 22:58. Просмотров 373. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Polynomial::List::add_list_end(int value)
{
    Polynomial::List *new_obj = new Polynomial::List;
    new_obj->data = value;
    new_obj->next = NULL;
 
    if (this){
    Polynomial::List *temp = this;
    while (temp->next != NULL)
        temp = temp->next;
    temp->next = new_obj;
    } else
        this = new_obj;
}
Ошибка в последней строчке(|17|error: lvalue required as left operand of assignment|).Так делать, судя по всему, нельзя. Интересует почему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 22:58     Присвоение this иного указателя
Посмотрите здесь:

C++ Присвоение значений
присвоение typeid C++
C++ Не выполняет присвоение
Присвоение значений C++
Составить программу, в строке, введенному пользователем, подсчитывает число вхождений того или иного символа. Написать функцию count вычисления числа C++
C++ вывод, присвоение
C++ Присвоение структур
C++ Присвоение указателей
Что за присвоение? C++
присвоение значения C++
Присвоение в цикле C++
C++ Присвоение переменной поля указателя на объект

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.10.2013, 23:07     Присвоение this иного указателя #2
Цитата Сообщение от Hunter13ua Посмотреть сообщение
Так делать, судя по всему, нельзя. Интересует почему.
По той же причине, по которой не стоит пилить сук, на котором сидишь.

Если интересует чисто формальная сторона вопроса, то пункт 5.1.1/1 стандарта говорит о том, что this — это prvalue-величина (такой особый вид rvalue). А rvalue-величины не связаны с объективными сущностями в памяти, поэтому им нельзя присваивать значения.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.10.2013, 23:10     Присвоение this иного указателя #3
Цитата Сообщение от Hunter13ua Посмотреть сообщение
Интересует почему.
два объекта не могут распологаться по одному и тому же адресу, а подмена одного объекта другим противоречит ОО подходу
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
17.10.2013, 23:34  [ТС]     Присвоение this иного указателя #4
Хорошо. Тогда следственный вопрос. То, что я предполагал сделать изначально - невозможно?
(Пояснение на примере. Есть указатель на NULL типа списка. Из него вызвать добавление нового элемента. При этом т.к. список пустой - указатель должен указывать на свежевыделенную область памяти.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
18.10.2013, 00:06     Присвоение this иного указателя #5
Всё возможно. Храните внутри Polynomial::List указатель на некий Polynomial::List::Element, в котором уже будут лежать данные и связи между элементами списка.

А вызов метода по NULL-указателю — это всё же потенциальный выстрел себе в ногу.
Yandex
Объявления
18.10.2013, 00:06     Присвоение this иного указателя
Ответ Создать тему
Опции темы

Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru