Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

17.10.2013, 22:58. Просмотров 428. Ответов 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|).Так делать, судя по всему, нельзя. Интересует почему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 22:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присвоение this иного указателя (C++):

Присвоение переменной поля указателя на объект - C++
Инициализация: Dragons* dragon; for (int i = 0; i <= 99; i++) { dragon = new Dragons(random(50), random(40), 3,8); } ...

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? - C++
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании указателя,его значение(адресс) увеличивается на 4 (размер int в...

Преобразование кода без указателя в код с использованием указателя - C++
Правильно ли выполнил? Исходный код без указателя #include <iostream> #include <cstdlib> #include <fstream> using namespace...

Как сделать функцию от указателя на класс и указателя на метод? - C++
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

В чём отличие константного указателя и указателя на константу? - C++
int *const p1 и int const* p2 Объясните мне в чём тут отличие.

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... - C++
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать...

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

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

А вызов метода по NULL-указателю — это всё же потенциальный выстрел себе в ногу.
0
18.10.2013, 00:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 00:06
Привет! Вот еще темы с ответами:

Перезаписать память начиная с указателя Bitmap[1] элементами начиная с указателя Bitmap[0] - C++
Задан массив из 3 указателей Bitmap, по адресу Bitmap необходимо записать 480*640 элементов из массива Bitmap. В последнем цикле for выдает...

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

При вводе того или иного пароля открывать тот или иной txt-файл - C++
Добрый вечер. Нужно написать программу, которая будет при вводе того или иного пароля открывать тот или иной .txt файл. Например: ...

Присвоение значений - C++
Всем доброго времени суток, подскажите как присвоить переменной такое значение? 48847E5536130C10


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.