LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Как вы себе это представляете в объёме нескольких лаб в отрыве от серьёзного по объёму кода?

Так в этом и фокус хорошего обучения, чтобы небольшим количеством небольших упражнений достичь правильного навыка.

Например, можно дать задачу на работу с несколькими файлами посредством функций fopen/fclose (либо open/close под Linux/BSD, либо CreateFile/CloseHandle под Windows) и затем пальцем показать места в коде, где происходят утечки ресурсов. Потом рассказать про RAII и заставить переделать, возможно, усложнив задачу. Чтобы обучающиеся сами почувствовали, насколько стало проще.

Или задача на идиому pImpl. С ручным управлением памятью, без оного.

После пару-тройки таких задач навык находить паттерны для RAII у людей способных к программированию на C++, выработается. Если не выработается, то либо человек никогда не сможет нормально писать на C++, либо вообще не сможет программировать (нормально, в смысле, а не говнокодя).

PS. В свое время для меня лакмусовой бумажкой стали указатели. Понимает человек что такое указатель (не важно в Си, С++ или Pascal) – значит программировать его можно научить. А если еще и понимает, что значит двойной указатель, значит сможет программировать и на Си, и на C++. А вот если с двойными указателями не складывается, значит за рамки безопасных управляемых языков ему лучше не заходить. Но, конечно же, это все мой очень скромный опыт, на всеобщность не претендую.

Исходная версия eao197, :

Как вы себе это представляете в объёме нескольких лаб в отрыве от серьёзного по объёму кода?

Так в этом и фокус хорошего обучения, чтобы небольшим количеством небольших упражнений достичь правильного навыка.

Например, можно дать задачу на работу с несколькими файлами посредством функций fopen/fclose (либо open/close под Linux/BSD, либо CreateFile/CloseHandle под Windows) и затем пальцем показать места в коде, где происходят утечки ресурсов. Потом рассказать про RAII и заставить переделать, возможно, усложнив задачу. Чтобы обучающиеся сами почувствовали, насколько стало проще.

Или задача на идиому pImpl. С ручным управлением памятью, без оного.

После пару-тройки таких задач навык находить паттерны для RAII у людей способных к программированию на C++, выработается. Если не выработается, то либо человек никогда не сможет нормально писать на C++, либо вообще не сможет программировать (нормально, в смысле, а не говнокодя).

PS. В свое время для меня лакмусовой бумажкой стали указатели. Понимает человек что такое указатель (не важно в Си, С++ или Pascel) – значит программировать его можно научить. А если еще и понимает, что значит двойной указатель, значит сможет программировать и на Си, и на C++. А вот если с двойными указателями не складывается, значит за рамки безопасных управляемых языков ему лучше не заходить. Но, конечно же, это все мой очень скромный опыт, на всеобщность не претендую.