Что я должен написать, чтобы проникнуть в глубины продвинутого C ++? - PullRequest
10 голосов
/ 13 июля 2010

Я ищу предложения по проектам, которые заставили бы меня "запачкать руки" с помощью расширенных функций C ++. Я говорю о проектах, которые использовали бы всю мощь языка (STL или даже повышение (еще не очень много)).

Почему? Потому что я хочу учиться, я хочу найти новые проблемы. На работе все становится скучно, правда. Я привык постоянно сталкиваться с новыми вещами, новыми идеями и функциями. Это, как вы можете себе представить, в большинстве случаев не относится к унаследованным кодам компаний. И все же, глядя на некоторые вопросы и ответы здесь, которые углубляются в глубины шаблонов, общих указателей и всего того, что я случайно теряю, не зная ответа или, что еще хуже, даже не понимая, что происходит.

Вот почему я ищу что-то, что я мог бы написать сам, используя предпочтительно только C ++ (возможно, + boost) - утилиту командной строки, без графики, пожалуйста. И я действительно не хочу вступать ни в одно сообщество с открытым исходным кодом. Глядя на чужой код полезно, я знаю. Но это то, что я делаю на работе, так что ... нет, спасибо. Проект может быть чем угодно, значимым или бессмысленным, полезной утилитой или просто чем-то, что не имеет реального применения. Единственное требование - это заставит меня по-настоящему проверить свои навыки C ++. Или, по крайней мере, должно быть очень сложно или даже невозможно писать код с базовыми знаниями C ++ - я тот человек, который никогда не доволен кодом, который просто работает, поэтому я считаю, что это заставит меня учиться. Но имейте в виду, что я работающий человек, и мое время ограничено, поэтому ответы типа «код вашей собственной ОС» на самом деле мало помогут.

Ответы [ 11 ]

0 голосов
/ 13 июля 2010

Выберите любую сложную структуру данных (например, дерево, очередь с приоритетами и т. Д.) И внедрите ее.

Таким образом вы научитесь:
- проектировать в режиме ООП
- предоставлять полезный и согласованный API
- правильно использовать наследование, шаблоны, встроенные функции для полной реализации вашей реализациицели
- написать кросс-платформенный код
- написать комплексные юнит-тесты

Использовать код STL как ссылку на то, как все должно быть сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...