Какой проект был бы Вы рекомендовать мне войти в курс дела с [закрытым] C++

Пустая строка '' не является нулевым объектом в R

?is.null

NULL представляет нулевой объект в R: это зарезервированное слово. NULL часто возвращается выражениями и функциями, значения которых не определены.

> !is.null('')
[1] TRUE

Однако shiny::isTruthy решит эту проблему

> isTruthy('')
[1] FALSE
5
задан CSᵠ 26 October 2014 в 19:52
поделиться

13 ответов

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

C++ похож на гранату без английской булавки – выглядит прохладным, и Вы услышали, что все "настоящие профессионалы" используют его, но Вы не знаете, когда он должен взорваться. Огромная сумма функций, которые могут быть использованы во благо или для зла, не зная, является ли это действительно хорошим или злым. Вот почему руководство - необходимость здесь.

10
ответ дан 18 December 2019 в 05:18
поделиться

Диспетчер памяти. Это должно получить Вас думающий о:

  • свободное управление хранилищем
  • указатели (конечно!)
  • наследование (Вы захотите, чтобы Ваш код драйвера использовал это),
  • шаблоны (другой способ раздать менеджера - драйвер № 2)
  • разработка определяемых пользователем структур данных (блок памяти)
  • эффективное использование стандартного контейнера (контейнеров)
  • алгоритмы (для перемещений выясните пустые блоки, дефрагментацию),
8
ответ дан 18 December 2019 в 05:18
поделиться

Эффективный C++ и более эффективный C++

Кроме этого, выберите (маленький?) персональный проект Вы хотите записать и сделать это в C++. Вы не собираетесь изучать C++ путем чтения 1 000 проектов строки.

6
ответ дан 18 December 2019 в 05:18
поделиться

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

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

Проблема с этим, а также большинство других проектов, состоит в том, что Вы не будете действительно знать, когда Вы будете сделаны. Создание массива изменяемого размера могло бы взять 50 строк кода, и 20 минут Вашего времени. И затем новичок думал бы, что сделан. Создание его безопасный от исключения требует, чтобы Вы смогли определить все места, где класс мог бы быть брошен в непоследовательное состояние исключением.

Это - своего рода общая проблема с C++. Достаточно легко думать, что Вы получаете его, и компилятор, конечно, не уведомит Вас относительно аспектов, что Вы забыли обрабатывать. Таким образом, Вы могли бы думать, что Ваш код прекрасен, и все же он откажет для всех видов нечетных особых случаев.

Как sharptooth сказал для языка, столь же грязного как C++, написание кода самостоятельно опасно. Легко попасть в прерывание, "я написал некоторый код, это компилирует, и это, кажется, работает. Поэтому это корректно". Конечно, Вы могли отправить свой код здесь или на других сайтах для обзора или возможно просто добавить Ваше кодирование с чтением документов для фактического высококачественного кода C++ (большинство библиотек повышения склонно иметь подробную документацию, указывая и объяснение для различных проектных решений, и как это безопасно обрабатывает все странные особые случаи, которые имеют тенденцию неожиданно возникать в C++. Сам стандарт C++ был бы другим превосходным ресурсом, конечно. В любом случае они могли бы помочь Вам определить что проблемы высматривать),

5
ответ дан 18 December 2019 в 05:18
поделиться

Когда я изучал C++, я использовал его для записи моего собственного языка для записи Колоссальных приключений стиля Пещеры. Как большинство языков программирования это никогда не выходило в свет, но это действительно учило меня много C++.

Независимо от того, что Вы выбираете вещь избежать при узнавании, что C++ является программированием GUI, которое является прерыванием, которое будет истощать всю сообразительность и вероятно преподавать Вам плохо привычки C++ в процессе.

4
ответ дан 18 December 2019 в 05:18
поделиться

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

Другая прекрасная идея состоит в том, чтобы записать простую библиотеку математики, поддерживая Матрицы Векторов и т.д. Но с сегодняшними библиотеками, который только имеет академическое применение.

3
ответ дан 18 December 2019 в 05:18
поделиться

Для изучения C++, полезно посмотреть на большое количество правильно написанного кода C++. Я думаю, что библиотека Qt довольно хороша для этого так, я предлагаю: Запишите спокойное приложение.

Посмотрите, как они используют C++ и создают Ваши собственные графические компоненты подобным способом.

Идеи: - виджет средства просмотра биржевой диаграммы, который соединяется с одним из финансовых веб-сайтов и очищает ретроспективные данные. - Simple Excel как виджет электронной таблицы.

3
ответ дан 18 December 2019 в 05:18
поделиться

Я рекомендовал бы писать клон Тетриса. Можно изучить много понятий C++ с этим и изучить 2-ю библиотеку как SDL или возможно даже OpenGL throgh SDL.

Всегда хорошо иметь проект с визуальными результатами, и в конце его можно играть его.

1
ответ дан 18 December 2019 в 05:18
поделиться

Зависит, над какой областью Вы хотите работать в. Но ничто стоящее сделать правильно не входит меньше чем в 1 000 строк кода.

Если Вы собираетесь быть играми записи, затем пытаются писать клон Тетриса.

Если бы Вы думаете, что будете использовать сокеты и т.д. затем запись, что простой chat/irc клиент помог бы.

У Вас есть определенный зуд, который должен быть поцарапан? Когда был прошлый раз, Вы думали, что "это сосет, я мог добиться большего успеха?". Можно ли добиться большего успеха?

2
ответ дан 18 December 2019 в 05:18
поделиться

Интерактивный мир: матрица, где каждое положение может быть Пустотой или Существом. A Быть что-то с несколькими атрибутами: возраст, оставленное Время, пол, граничит с соединениями и т.д. Способный несколько взаимодействий: поединки, занимание сексом и дети, дружба, и т.д. У некоторых есть специальные Навыки, в зависимости от их родительских элементов (наследованные отрасли)... как способность уничтожить, способность сделать еду, и т.д... Возможными результатами тех взаимодействий и навыков являются изменения на сам атрибуты или потомки создания (когда возможный), или изменение граничит с атрибутами.

При каждом повторении распечатайте матрицу как символы/числа на консоли (в зависимости от атрибутов, и т.д.), начинающий с библейского повторения 0 (начальные условия, по Вашему выбору... Вы - Бог здесь).

Теперь Вы получили некоторое реальное средство моделирования шаблона и узнали что-то о наследовании, polimorfism, виртуальных функциях, инстанцировании классов, и т.д.

0
ответ дан 18 December 2019 в 05:18
поделиться

Я предположил бы, что простой текстовый редактор будет разумной целью.

Это - проблемная область, из которой у Вас есть хорошее схватывание.

У Вас есть проблемы управления памятью, проблемы повторного использования класса библиотеки (stl/curses?), проблемы указателя и много опций, где производные классы могут использоваться.

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

Существует другой хороший.... имеющий дело с файлами.

У Вас нет к кросс-платформенному его. У Вас нет к открытому исходному коду его. Вы не должны показывать его никому. Вы не должны даже заканчивать его. Это может быть осуществление только для Вас.

0
ответ дан 18 December 2019 в 05:18
поделиться

Если Вы изучаете fron книга, он должен иметь много хорошо продуманных упражнений, которые можно реализовать и извлечь уроки из. Также проверьте университетские сайты и их лаборатории C++ / присвоения.

0
ответ дан 18 December 2019 в 05:18
поделиться

Кажется, существует две темы, прибывающие из ответов:

  1. Необходимо выбрать проект, который мог бы включить больше, чем 1K LOC для получения истинного опыта проекта.

  2. Необходимо также разделить на пары с опытным разработчиком C++, который может помочь Вам продумать проблемы и избежать ловушек, связанных с языком.

Можно обойти оба из них колебанием sourceforge.net и регистрацией для помощи с существующим проектом C++. Пока Вы не возражаете против своего кода, являющегося открытым исходным кодом, необходимо смочь найти существующий проект извлечь уроки из плюс опытные разработчики, которые могут помочь путем рассмотрения кода и предложения руководства.

1
ответ дан 18 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: