C++ для начинающих. Введение

Вернуться к общему содержанию "C++ для начинающих".

Дата написания статьи: апрель 2014
Дата последней правки: 2014-08-14

С этой статьи начинаем серию статей по языку программирования C++ (Си плюс плюс) для начинающих.

    Содержание

  1. Что такое C++
  2. Не следует путать языки C и C++
  3. Рекомендации по изучению С++

Что такое C++

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

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

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

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

Об этом факте можно сказать несколько глубже.

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

Не следует путать языки C и C++

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

Таким образом, нет смысла изучать сначала язык C для того, чтобы потом было проще изучить язык C++. Проще не будет, а время будет потеряно. Если вам нужен C++, то следует сразу садиться за изучение C++. И наоборот, если вам нужен язык C, то знания C++ практически не ускорят вашего погружения в C. Это справедливо для тех, кто не считает, что изучение языка означает выучивание записи основных его операторов. Если для вас это проблема, и вам нужен месяц, чтобы научиться писать циклы и условия в языке C, то именно этот месяц вы и сможете сэкономить при изучении записи циклов и условий в языке C++. Однако, если дела обстоят именно так, то вам следует либо еще потратить время на изучение основ алгоритмирования (вне какого-то конкретного языка программирования), либо серьезно задуматься о смене профессии, чтобы не терять свое время.

Чтобы не быть голословным, приведем, без каких-либо комментариев код традиционной программы «Hello world» на языках C и C++.

Пример на языке C

#include <stdio.h>

int main(int argc, char **argv)
{
   printf("Hello world\n");

   return 0;
}

 

Пример на языке C++

#include <iostream>

int main(int argc, char *argv[])
{
   std::cout << "Hello world" << std::endl;

   return 0;
}

Рекомендации по изучению С++

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

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

В дальнейшем мы будем ориентироваться на Linux и компилятор с языка C++ из коллекции компиляторов GNU (GCC — GNU Compiler Collection). Если у вас нет возможности установить Linux даже на виртуальный компьютер, то, для того чтобы быть максимально близким к примерам данного руководства можно установить средства MinGW (Minumalist GNU for Windows) с компилятором для C++. В переводе на понятный язык, MinGW является некоторым минимальным набором утилит для Windows, который был портирован из мира бесплатного программного обеспечения, которое традиционно работает в *nix, в том числе под Linux. Не следует думать, что под Windows они так же удобны и эффективны как в *nix, но, все же, это хоть какое-то решение проблемы. По крайней мере, по минимуму этого уже достаточно, чтобы в консоли выполнять компиляцию проектов и даже чтобы связать с этими средствами некоторые среды разработки. Чтобы прочувствовать процесс компиляции, неплохо начать именно с прямого вызова необходимых команд из консоли, однако, в дальнейшем, правильнее будет установить какую-нибудь среду разработки приложений. Среди бесплатных сред разработки можно посоветовать несколько кроссплатформенных сред: Geany, CodeLight и QtCreator.

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

Установка QtCreator может оказаться нетривиальной задачей для новичка, так как существует множество инсталляторов несколько разного назначения, предназначенных для установки QtCreator и его развертывания в условиях несколько разных окружений инструментов компиляции и библиотек. Следует ориентироваться на использование QtCreator совместно с бесплатными средствами компиляции, предоставляемыми под Windows через упомянутую ранее коллекцию MinGW.

Для установки упомянутых средств разработки под Windows можно познакомиться со статьей "Установка бесплатных средств разработки для C++ под Windows. Qt(QMake/CMake) + MinGW" на этом сайте.

Несмотря на некоторые решаемые сложности, все-таки, стоит потратить время на установку среды разработки QtCreator вместе с QtSDK под MinGW. Во-первых, QtCreator на сегодняшний день является одной из лучших кроссплатформенных средств разработки для языка C++. Во-вторых, вместе с QtSDK будут установлены необходимые средства компиляции, а, в-третьих, в дальнейшем, будет повод попробовать библиотеку Qt как отличный пример использования C++ для создания оконных кроссплатформенных приложений.

Следует напомнить, что возможные сложности вас ждут только при развертывании рабочего места под Windows. Если вы будете пользоваться Linux, то вам потребуется только выбрать из вашего репозитория необходимы средства и они будут установлены уже в необходимой рабочей связи друг с другом.

Добавить комментарий