Сообщение от
Hunta
И если добавить такие конструкции (удобства) в С - С++ окажется в ещё большем проигрыше.
О каком "проигрыше" речь, когда исходники обоих стандартов компилирует один и тот же компилятор, создающий из обоих вариантов один и тот же код, а разница только в удобстве синтаксиса у варианта C++.
C-подмножество C++ - это и есть то самое добавление нормальной функциональности в кривоногий синтаксис ванильного C, без которого о нормальном программировании говорить сложно.
Но помимо этого - при C-программировании на C++, появляется возможность использовать и некоторые простые "плюсы" расширенного стандарта. Хороший пример - задание начальных значений полей структур.
Вариант ванильного C:
Код:
struct s {
int one;
int two;
};
struct s *pS1 = (struct s*) malloc( sizeof(s) );
(*pS1).one = 1;
(*pS1).two = 2;
struct s *pS2 = (struct s*) malloc( sizeof(s) );
(*pS2).one = 1;
(*pS2).two = 2;
Вариант здорового C ( т.е. C++ ):
Код:
struct s {
int one;
int two;
s(): one(1), two(2) {}
};
struct s *pS1 = new s;
struct s *pS2 = new s;