почему this - указатель, а не ссылка?
От: ssm Россия  
Дата: 18.03.05 09:55
Оценка:
Собственно сабж.
Re: почему this - указатель, а не ссылка?
От: Lorenzo_LAMAS  
Дата: 18.03.05 10:05
Оценка: 6 (2) +1
ssm>Собственно сабж.

Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value.
Of course, the code must be complete enough to compile and link.
Re: почему this - указатель, а не ссылка?
От: fulltick  
Дата: 18.03.05 10:10
Оценка: 7 (2) +1
Здравствуйте, ssm, Вы писали:

ssm>Собственно сабж.

Зато можно написать
delete this
Re[2]: почему this - указатель, а не ссылка?
От: LuciferMoscow Россия  
Дата: 18.03.05 10:12
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value.

Прямо в точку. Ссылки появились позднее!
Re[3]: почему this - указатель, а не ссылка?
От: Lorenzo_LAMAS  
Дата: 18.03.05 10:19
Оценка:
LM>Прямо в точку. Ссылки появились позднее!

В "Дизайне и эволюции C++" есть что-нить по этому поводу? (время появления ссылок)
Of course, the code must be complete enough to compile and link.
Re[4]: почему this - указатель, а не ссылка?
От: LuciferMoscow Россия  
Дата: 18.03.05 10:21
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

LM>>Прямо в точку. Ссылки появились позднее!


L_L>В "Дизайне и эволюции C++" есть что-нить по этому поводу? (время появления ссылок)

Вроде есть. Иначе откуда бы я знал, что ссылки появились позднее?!
Re[5]: почему this - указатель, а не ссылка?
От: Lorenzo_LAMAS  
Дата: 18.03.05 10:23
Оценка:
LM>Вроде есть. Иначе откуда бы я знал, что ссылки появились позднее?!

Нууу, есть же люди которые на K&R C писали
Of course, the code must be complete enough to compile and link.
Re[2]: почему this - указатель, а не ссылка?
От: jazzer Россия Skype: enerjazzer
Дата: 18.03.05 12:06
Оценка:
Здравствуйте, fulltick, Вы писали:

F>Здравствуйте, ssm, Вы писали:


ssm>>Собственно сабж.

F>Зато можно написать
F>
F>delete this
F>

ну так можно написать и delete *this.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: почему this - указатель, а не ссылка?
От: Leshi Россия  
Дата: 18.03.05 12:20
Оценка:
Здравствуйте, jazzer, Вы писали:

ssm>>>Собственно сабж.

F>>Зато можно написать
F>>
F>>delete this
F>>

J>ну так можно написать и delete *this.
А плохо от такого не будет?
Я думаю, все-таки имелось в виду одно из двух:
1. ПисАть можно, но компилиться не будет.
2. Можно было бы писАть, если бы this был ссылно, но delete &this
... << RSDN@Home 1.1.3 stable >>
Re[3]: почему this - указатель, а не ссылка?
От: Leshi Россия  
Дата: 18.03.05 12:20
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

L_L>>Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value.

LM>Прямо в точку. Ссылки появились позднее!
Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав?
... << RSDN@Home 1.1.3 stable >>
Re[4]: почему this - указатель, а не ссылка?
От: Lorenzo_LAMAS  
Дата: 18.03.05 12:44
Оценка:
L>Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав?

Задолго до С++ == это ты еще в 70х писал и использовал TC 2.0 ?????
Of course, the code must be complete enough to compile and link.
Re[5]: почему this - указатель, а не ссылка?
От: Leshi Россия  
Дата: 18.03.05 12:54
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L>>Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав?

L_L>Задолго до С++ == это ты еще в 70х писал и использовал TC 2.0 ?????
Нет, в 70х меня только проектировали. Но ТС 2.0 это начало 80-х. Если память моя не глючит, С++ в то время даже под стол пешком не ходил.
... << RSDN@Home 1.1.3 stable >>
Re[6]: почему this - указатель, а не ссылка?
От: Lorenzo_LAMAS  
Дата: 18.03.05 13:02
Оценка:
вроде как 79-80 год рождения С++ (хотя вроде как доступен массам он стал только с 85)
Of course, the code must be complete enough to compile and link.
Re[4]: почему this - указатель, а не ссылка?
От: jazzer Россия Skype: enerjazzer
Дата: 18.03.05 13:04
Оценка:
Здравствуйте, Leshi, Вы писали:

L>Здравствуйте, jazzer, Вы писали:


ssm>>>>Собственно сабж.

F>>>Зато можно написать
F>>>
F>>>delete this
F>>>

J>>ну так можно написать и delete *this.
L>А плохо от такого не будет?
L>Я думаю, все-таки имелось в виду одно из двух:
L>1. ПисАть можно, но компилиться не будет.
L>2. Можно было бы писАть, если бы this был ссылно, но delete &this

да, второе, конечно же
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: почему this - указатель, а не ссылка?
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 18.03.05 13:38
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

LM>>>Прямо в точку. Ссылки появились позднее!


L_L>>В "Дизайне и эволюции C++" есть что-нить по этому поводу? (время появления ссылок)

LM>Вроде есть. Иначе откуда бы я знал, что ссылки появились позднее?!

Точно есть — именно это там и написано.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re: почему this - указатель, а не ссылка?
От: rus blood Россия  
Дата: 18.03.05 13:43
Оценка: 1 (1)
Здравствуйте, ssm, Вы писали:

Потому что this может быть NULL-ом.
Смотрите код CWnd::GetSafeHwnd() для примера.
Имею скафандр — готов путешествовать!
Re[2]: почему this - указатель, а не ссылка?
От: Аноним  
Дата: 18.03.05 13:53
Оценка: +2
RB>Потому что this может быть NULL-ом.
RB>Смотрите код CWnd::GetSafeHwnd() для примера.

ИМХО у нормальных людей this NULL-ом не бывает
Re[3]: почему this - указатель, а не ссылка?
От: Leshi Россия  
Дата: 18.03.05 14:09
Оценка:
Здравствуйте, <Аноним>, Вы писали:

RB>>Потому что this может быть NULL-ом.

RB>>Смотрите код CWnd::GetSafeHwnd() для примера.

А>ИМХО у нормальных людей this NULL-ом не бывает

А что делать ненормальным?
... << RSDN@Home 1.1.3 stable >>
Re[4]: почему this - указатель, а не ссылка?
От: Аноним  
Дата: 18.03.05 14:12
Оценка:
L>А что делать ненормальным?
Задуматься, с чего это у них this == 0
Re[4]: почему this - указатель, а не ссылка?
От: Аноним  
Дата: 18.03.05 14:21
Оценка:
L>А плохо от такого не будет?

если отвлечься от явной ненужности такого кода, вполне можно написать

class A
{
public:
   operator A *()
   {return this;}
   void fun(){delete *this;}
};
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.