Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали: L_L>Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
LM>>Прямо в точку. Ссылки появились позднее!
L_L>В "Дизайне и эволюции C++" есть что-нить по этому поводу? (время появления ссылок)
Вроде есть. Иначе откуда бы я знал, что ссылки появились позднее?!
Здравствуйте, jazzer, Вы писали:
ssm>>>Собственно сабж. F>>Зато можно написать F>>
F>>delete this
F>>
J>ну так можно написать и delete *this.
А плохо от такого не будет?
Я думаю, все-таки имелось в виду одно из двух:
1. ПисАть можно, но компилиться не будет.
2. Можно было бы писАть, если бы this был ссылно, но delete &this
Здравствуйте, LuciferMoscow, Вы писали:
L_L>>Я чего-то вехи забыл. Ссылочные типы в С++ изначально были? Или нет? Просто может его придумали, когда еще ссылок не было? Кроме того, this это же r-value. LM>Прямо в точку. Ссылки появились позднее!
Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав?
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L>>Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав? L_L>Задолго до С++ == это ты еще в 70х писал и использовал TC 2.0 ?????
Нет, в 70х меня только проектировали. Но ТС 2.0 это начало 80-х. Если память моя не глючит, С++ в то время даже под стол пешком не ходил.
Здравствуйте, Leshi, Вы писали:
L>Здравствуйте, jazzer, Вы писали:
ssm>>>>Собственно сабж. F>>>Зато можно написать F>>>
F>>>delete this
F>>>
J>>ну так можно написать и delete *this. L>А плохо от такого не будет? L>Я думаю, все-таки имелось в виду одно из двух: L>1. ПисАть можно, но компилиться не будет. L>2. Можно было бы писАть, если бы this был ссылно, но delete &this
Здравствуйте, LuciferMoscow, Вы писали:
LM>>>Прямо в точку. Ссылки появились позднее!
L_L>>В "Дизайне и эволюции C++" есть что-нить по этому поводу? (время появления ссылок) LM>Вроде есть. Иначе откуда бы я знал, что ссылки появились позднее?!
Точно есть — именно это там и написано.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, <Аноним>, Вы писали:
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;}
};
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, ssm, Вы писали:
RB>Потому что this может быть NULL-ом. RB>Смотрите код CWnd::GetSafeHwnd() для примера.
Так и знал, что к этому придет ПОИСК рулит! Undefined behavior! Млин.
Здравствуйте, Leshi, Вы писали: L>То вызов KillSubTree хорошего ничего не сделает, это уж точно. Я бы сказал, что это плохая идея.
Там был более сложный пример на эту тему. Но прога доблестно работает и по сей момент
Здравствуйте, ssm, Вы писали:
L>>с таким кодом надо быть осторожнее... А если TreeItem будет объявлен так: L>>
ssm>TreeItem root;
L>>
ssm>Да чего осторожничать? Закрыть все конструкторы и сделать производящую функцию/фабрику-шмабрику
Мне кажется, что такой подход в данном случае не оправдан. Убийство поддерева можно было и в деструктор повесить. Да и кода меньше было бы, и читабельность повыше... Хотя, конечно, это могло быть обусловлено другими требованиями. Но я бы так все-равно делать не стал.
Здравствуйте, Leshi, Вы писали:
L>Здравствуйте, Lorenzo_LAMAS, Вы писали:
L>>>Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав? L_L>>Задолго до С++ == это ты еще в 70х писал и использовал TC 2.0 ????? L>Нет, в 70х меня только проектировали. Но ТС 2.0 это начало 80-х. Если память моя не глючит, С++ в то время даже под стол пешком не ходил.
Нет, не начало... 88-й вроде... Или 89-й.
Здравствуйте, _wqwa, Вы писали:
L>>>>Что-то мне подсказывает, что в TC 2.0 (задолго до С++) я уже использовал ссылки... Или я все-таки не прав? L_L>>>Задолго до С++ == это ты еще в 70х писал и использовал TC 2.0 ????? L>>Нет, в 70х меня только проектировали. Но ТС 2.0 это начало 80-х. Если память моя не глючит, С++ в то время даже под стол пешком не ходил. _>Нет, не начало... 88-й вроде... Или 89-й.
Эх, не нашел такого раритета у себя. Вот ВС++ 3.1 датирован 92 годом Из этого можно предтоложить, что ТС++ 3.0 был в году этак 90-91, а вот ТС 2.0 думаю, что все-таки не позже 85 (уж очень много там изменилось) Хотя, чисто теоретически, он мог выйти и в 92, только чуть-раньше Однако, я не думаю, что его успели бы сертифицировать для военных нужд к тому времени. Это обычно 3-5 лет занимает, а я точно знаю, что в 93 он уже был сертефицирован и какое-то время уже использовался.
2All: Может быть кто-нибудь раскопает ТС 2.0 у себя в архивах да посмотрит? Уже самому итересно стало
Здравствуйте, Leshi, Вы писали:
L>2All: Может быть кто-нибудь раскопает ТС 2.0 у себя в архивах да посмотрит? Уже самому итересно стало
TC 2.0 датирован 1988 годом, imho. TC++ 1.0 — где-то 1989 (во всяком случае, в конце 1989 г. видел его IDE).
а вот TC++ 3.0, imho, сильно урезанный BC++ 3.x (нет IDE для Windows и много чего еще). Кстати, и в обзорах тогда я его не встречал.
Откровенно говоря, совершенно не помню, были ли уже ссылки в TC++ 1.0.