Ну не нравится не пиши на С++, че флейм то разжигать.
Ксати, а есть что нибудь лучше С++, с таким же коммерческим успехом.
DB>1.Отсутствие модулей. Имитация понятия модуль в виде пары h-файл – cpp-файл приводит к многочасовым компиляциям системы.
Можно все в хэдере писать. Никто не запрещает.
DB>2.Использование целочисленных типов данных без знака (unsigned int) для номеров элементов и количественных значений в стандартной библиотеке stdc++. Приводит к следующим ошибкам:
Ну для номеров, логично беззнаковые типы использовать.
DB>3.Отсутствие встроенной проверки на выход за диапазоны массива. Приводит к необходимости писать «обертки» для классов-контейнеров (в частности, для класса vector).
А кто мешает польховаться итераторами.
DB>4.Отсутствие встроенных средств инициализации динамической памяти нулями при конструировании объектов оператором new. Оборачивается не выигрышем, а проигрышем в производительности, поскольку приводит к необходимости писать код инициализации в конструкторах.
А почему например нет встроенных средств инициализации еденицами, мне например чаще еденицами надо инициализировать? Гибкость, однако.
DB>5.«Автоматизм» конструкторов и деструкторов для объектов, создаваемых динамически и имеющих виртуальные методы; работа виртуальных методов как не виртуальных при их вызове из конструкторов и деструкторов; отсутствие стандартного базового класса. Значительно затрудняет решение проблемы повторного входа в объекты (reentrance problem) при создании библиотек визуальных компонентов и систем GUI.
Ну тут согласен, просто С++ — язык довольно сразу, он рождался вместе с этими идеями, в Java и C# эти проблемы вроде решены.
DB>6.Отсутствие оператора try {…} finally {…}. Приводит к созданию программ, неустойчивых к исключительным ситуациям. Попытка имитировать этот оператор с помощью оператора try {…} catch {…} приводит к большой избыточности кода.
есть __try, __except, __finally, правда только у MS-совместимых.