си

Атомарные выражения C++11

Вы наверное сталкивались с задачей написания счетчика. Простецкая задачка, не правда ли?
Но так может показаться только на первый взгляд. Ведь при работе с многопоточным программированием код:

Макросы в Си

Давайте попробуем разобраться с макросами. Что же такое макросы и с чем из едят?
Когда мне преподавали программирование в институте (это были времена когда я мало понимал в программировании и думал, что программисты - это крутые хакеры, которые сидят в непонятных подвалах с горой крутого оборудования), мне сказали что макросы это такие функции, которые начинаются со знака подчеркивания.
Толи я был настолько дурак в этом деле, то ли преподаватель решил не слишком изощряться в объяснениях... Увы ответ был таков.

Создание двумерного OpenGL приложения в C++

Прежде всего нам понадобится установить библиотеку glut - она поможет нам создать окно.
Для установки в ubuntu вам нужно выполнить следующую команду:

sudo apt-get install freeglut freeglut-dev

Теперь библиотека glut и её заголовочные файлы скачаны.
Для установки этой библиотеки в Windows вам понадобится скачать её вручную и скопировать в папку include вашего компилятора.
Приступим к созданию программы:
Включим необходимые заголовочные файлы:

Нахождение суммы модулей элементов массива размещённых после ноля

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

#include <iostream>
using namespace std;

В главной функции программы оприделим наш массив:

int a[10] = {1,-3,5,0,-5,6,8,9,-8,6};

Зарезервируем переменную для суммы:

Перегрузим операторы - добавим понятности коду

Перезагрузка операторов - однина из наиболее важных функций языка С++. Благодаря этой функции можно оприделить действия, которые будут выполняться при выполнений заданных операций с объектами.
В общем виде перегрузка оператор происходит так

тип имя_класса :: operator # {
операции
}

  • # - указывает на оператор, который будет перезагружен

Для примера создадим объект, который содержит координаты трёхмерной системы и укажем правила для операторов "+" и "=".