Найкращий огляд сучасних парадигм C ++? [зачинено]


16

Я писав на C ++ широко між 8 і 10 роками тому. З тих пір я перейшов на C # з професійних причин. Однак час від часу я бачу такі заяви

"Якщо ви все ще вручну відстежуєте посилання вказівника, ви робите це неправильно"

або

"C ++ є абсолютно безпечним, якщо ви використовуєте сучасні такі поняття, як RAII, і не розподіляєте пам'ять вручну, як розробник, що відновлюється."

Вони були стандартною процедурою десять років тому. Я бачив, що C ++ останнім часом значно покращився; Зокрема, C ++ 0x здається, що він має деякі нові можливості. Який найкращий ресурс для програміста "С / старий С ++", щоб потрапити на "сучасні" схеми та практики C ++?


3
Вони були стандартною процедурою десять років тому. На жаль, все ще існує дуже значна частина C ++ розробників, використовуючи стандартну процедуру три десятиліття тому.
DeadMG

7
Я не знаю жодного ресурсу, але сучасний C ++ в основному зводиться до: (1) широкого використання STL, коли це можливо, замість прокатаних вручну алгоритмів, (2) використання розумних покажчиків та контейнерів STL для ручного розподілу / розсилки , (3) функціонально-ескічний стиль програмування, що використовує функтори / лямбдати разом із функціями вищого порядку, та (4) перевага шаблону статичного поліморфізму над віртуальними функціями, коли це можливо
Чарльз Сальвія

Ефективний C ++ від Скотта Майєрса
Gyan aka Gary Buyn

Відповіді:


5

Це може мати більше спільного з інструктивними матеріалами, ніж більшість інших речей, але 8-10 років тому мені здається, що спосіб використання мови значно відрізнявся від сьогодні. У центрі уваги сьогодні більше використання шаблонів, безпеки типу та загального програмування, де раніше було все більше страху, і люди зосереджувалися майже виключно на С із об'єктними аспектами.

Інструкційні матеріали теж змінюються. У той час як перед початковою книгою C ++ початкова книга перенесла вас через printf, scanf тощо, ви навряд чи навіть побачите їх у книгах із сучасним підходом.

Деякі хороші книги - це будь-яка з червоних книг. Винятковий C ++, Більш винятковий C ++, C ++ Шаблон метапрограмування, Сучасний дизайн C ++, Прискорений C ++ ...

Я думаю, що хороший приклад може бути дивлячись на те, де я зараз працюю. Я прийшов сюди, використовуючи C ++ сучасним способом, і, здається, більшість розробників навіть не знають, що я роблю чи чому. Створення об'єктів з оператором (), наприклад ... Довелося коментувати пекло за кожне виникнення bind () і врешті-решт було сказано, щоб списати весь цей код. Не знаю, що ініціалізатори роблять ... Насправді мені це було справді химерно і важко.


5

Щоб отримати швидкий огляд сучасних функцій, представлених досить добре, ви не помилитесь, переглянувши нещодавню презентацію Herb Sutter "Написання сучасного коду C ++: як C ++ розвивався протягом багатьох років" функцій C ++ у // build /.

Він розповідає про те, чому її мова краща, ніж C # (звичайно, Microsoft регулярно міняє штани, і сьогодні вони носять моду C ++, щоб вони перекривали це, просто так, як вони розкрили C # як відповідь на голод у світі за десятиліття тому), але при цьому він описує всі хороші біти (наприклад, «автоматичне» управління пам’яттю та STL-класи), а потім продовжує розповідати про нові біти зі стандарту C ++ 0x.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.