Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.93.137] |
|
Страницы: (245) « Первая ... 231 232 [233] 234 235 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#3481
,
|
|
|
Цитата Dik0n @ Меня больше прикалывает - писал программист программы на Delphi. Ктото сказал, все не актуально изжил он себя, пойдем на .NET. Прогер накопил опять кучу кода, изучил кучу библиотек и опять, можен на Java свалим ? В итоге изучил кучу яп, а кроме как писать код для баз данных, на куче языков, нифига и не познал Правильно, поэтому в топку все эти Java/C#/Delphi, программированию на них не научишься, только к конкретному ЯП привыкнешь и обленишся в край. Норм спецу паралельно на чем вообще писать, так было, есть и будет. Добавлено Я когда давно только начинал осваивать компьютер, не программирование, а компьютер, купил себе книжку Программирование для школьников на делфи. И что, там в ближе к концу книжки, уже чуть ли не клиент-серверное приложение описывается. И сделать это - 5 раз мышкой ткнуть + кепшины подписать, ну и не забыть Close() в обработчике события кнопки "Закрыть" написать. И все, программа готова. А потом удивляемся, чота проги тупят. Конечно, если старшекласник какой нибудь начнет с такой фигни программить, ему и не нужны все ваши стэки, хипы, перформансы, юнит тесты и т.д., что это вообще за слова для лохов? Я свою программу на делфи быстрее напишу, чем ты свое поделие на С++, я крутой погроммист... |
Сообщ.
#3482
,
|
|
|
Делфист о С++
http://programmingmindstream.blogspot.ru/2...-post_4400.html Мне одному кажется что это не поток сознания, а поток бреда? Цитата Ещё раз повторю: "Что касается "использования шаблонов" и stl - хочется сказать - это не признак "крутости". Это скорее признак "зрелости" и "усталости". Да. Да! УСТАЛОСТИ. Когда хочешь "РЕШАТЬ ЗАДАЧИ", а не "писать фреймворки"." Ключевое слово - УСТАЛОСТЬ :-) Вот так вот. Обобщеное программирование - это нифига не круто, это просто кто созрел и устал писать фреймворки, те начинают использовать шаблоны и stl. Надо будет еще вебинар как нить глянуть. Там еще больше лулзов наверн... ЗЫЖ Интересно, а в Делфи наверное в порядке вещей создать пяток одинаковых классов Array для разных типов? |
Сообщ.
#3483
,
|
|
|
Цитата Wound @ Без дженериков так и было.в Делфи наверное в порядке вещей создать пяток одинаковых классов Array для разных типов? Базовый абстрактный TList, от него производные TStringList, TObjectList и т.д. http://docwiki.embarcadero.com/RADStudio/2...king_with_Lists |
Сообщ.
#3484
,
|
|
|
Цитата trainer @ Без дженериков так и было. Базовый абстрактный TList, от него производные TStringList, TObjectList и т.д. http://docwiki.embarcadero.com/RADStudio/2...king_with_Lists Тогда понятно чего это они там устали и созрели. Но всеравно, видимо не до конца созрели. Тут же STL используют студенты во всю вместе с шаблонами, хотя бы для того, чтоб не плодить лишние сущности и не писать кривых велосипедов. А судя по коменту автора, они таки не брезгуют велосипедами, и уже самые созрелые и уставшие таки применяют обобщеное программирование, но с оговоркой что это нифига не круто... |
Сообщ.
#3485
,
|
|
|
Цитата trainer @ Базовый абстрактный TList, от него производные TStringList TStringList - это не наследник TList. TObjectList таки да, наследник, это конечно ошибка, но тут уже ничего не поделаешь. легаси код есть всех. |
Сообщ.
#3486
,
|
|
|
У нас тут недалеко намечается конференция, на которой в частности будет делать доклад Сам Всеволод Леонов, Embarcadero Technologies. Вот разрываюсь прямо, то ли съездить поржать, то ли съездить потроллить. Как-никак "Мастер-класс «Кроссплатформенная разработка для Android, iOS, Windows, Mac OS на основе единого кода Delphi/C++»", однако.
|
Сообщ.
#3487
,
|
|
|
Съезди потролль, как вернешься - поржем.
|
Сообщ.
#3488
,
|
|
|
Солидарен с Polinom2686.
|
Сообщ.
#3489
,
|
|
|
Плюсовики, не могли бы вы прокомментировать этот код:
using namespace std; class A { public: A(int i): data(i){ } int data; }; class B: A { public: B(): A(GetData()){} private: int GetData() { cout << "data = " << data << endl; return 1; } }; int main() { B b; return 0; } |
Сообщ.
#3490
,
|
|
|
По идее выдаст строку "data = 12345" с случайным значением на месте числа, установит data равным 1 и выйдет. А в случае включенной оптимизации возможно и устанавливать ничего не будет.
Ну и выругаться может в строке с выводом. |
Сообщ.
#3491
,
|
|
|
UB: переменная data используется до того, как ей было присвоено значение.
|
Сообщ.
#3492
,
|
|
|
ОК, тогда такой вопрос, почему в плюсах нельзя управлять, когда будет вызван конструктор предка? Он всегда вызывается перед конструктором потомка. Почему вызов вирт. методов из конструкторов не полимрфен ? Почему сделано именно так?
|
Сообщ.
#3493
,
|
|
|
Цитата jack128 @ ОК, тогда такой вопрос, почему в плюсах нельзя управлять, когда будет вызван конструктор предка? Он всегда вызывается перед конструктором потомка. А вы хотите вызвать конструктор предка после потомка? Цитата Kray74 @ Почему вызов вирт. методов из конструкторов не полимрфен ? D_KEY уже много раз постил из "Философии Java" Эккеля, почему это опасно. |
Сообщ.
#3494
,
|
|
|
Игорь, я знаю почему это плохо. Я не понимаю, почему доступ к неинициализированным членам через полиморфный вызов из конструктора - плохо. И это запрещено в с++, а вот использование кода #3489 - разрешено ? Я вообще то думал, что компилер обяжет меня метод GetData статиком задекларировать. Но нет.
|
Сообщ.
#3495
,
|
|
|
Цитата jack128 @ Я не понимаю, почему доступ к неинициализированным членам через полиморфный вызов из конструктора - плохо. И это запрещено в с++, а вот использование кода #3489 - разрешено ? В C++ не запрещён полиморфный вызов из конструктора, просто он работает для типа уже созданного объекта, а не того типа, который будет создан в итоге. Потом, в случае вашего кода нужно лишь представить, что он разбит на разные единицы трансляции, собираемые абсолютно в разное время. Тогда нам понадобится во время компоновки межпроцедурный анализ уже скомпилированного кода, чтобы понять, что GetData обращается к не инициализированному полю. Ну, и в последнюю очередь, в C++ много всякого непотребства разрешено просто потому, что вырос из C. |