]]> ]]>

C++

Русское название:
Cи++
Дата создания:
1983
Создан под влиянием:
Повлиял на:
Парадигма:
Типизация:
Принятые расширения файлов:
.cpp .c++ .cc .h .hpp
Диалекты:
Реализации и версии (свернуть все | развернуть все):
Язык программирования

Си++ (англ. C++) — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.

В 1990-х годах язык стал одним из наиболее широко применяемых языков программирования общего назначения.

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

Нововведениями Си++ в сравнении с Си являются:

  • поддержка объектно-ориентированного программирования через классы;
  • поддержка обобщённого программирования через шаблоны;
  • дополнения к стандартной библиотеке;
  • дополнительные типы данных;
  • исключения;
  • пространства имён;
  • встраиваемые функции;
  • перегрузка операторов;
  • перегрузка имён функций;
  • ссылки и операторы управления свободно распределяемой памятью.

Элементы синтаксиса:

Комментарий до конца строки //
Комментарии, которые не могут быть вложенными /* ... */
Регистрозависимость да
Регулярное выражение идентификатора переменной [_a-zA-Z][_a-zA-Z0-9]*
Регулярное выражение идентификатора функции [_a-zA-Z][_a-zA-Z0-9]*
Присваивание значения переменной varname = value
Объявление переменной type varname
Объявление переменной с присваиванием значения type varname = value
Группировка выражений ( ... )
Блок { ... }
Равенство a == b
Неравенство a != b
Тождественное равенство *a == *b (a и b - указатели)
Тождественное неравенство *a != *b (a и b - указатели)
Сравнение < > <= >=
Определение функции returntype functionName (argtype1 argname1, ..., argtypeN argnameN)
Вызов функции functionName(arg1, ..., argN)
Вызов функции без параметров functionName()
Последовательность ;
Если - то iif (condition) trueBlock
Если - то - иначе if (condition) trueBlock else falseBlock
Бесконечный цикл while (true) loopBody
Цикл с предусловием while (condition) loopBody
Цикл с постусловием do loopBody while (!condition)
Цикл for - next для диапазона целых чисел с инкрементом на 1 for (int i = first; i <= last ; i++)
Цикл for - next для диапазона целых чисел с декрементом на 1 for (int i = last; i >= first; i--)

Примеры:

Факториал:

Пример для версий Borland C++ Builder 6, g++ 4.x

Используется рекурсивное определение факториала.

#include <iostream>

unsigned long long factorial(unsigned long long n)
{
	if (n == 0) 
		return 1;
	else 
		return n * factorial (n - 1);
}

int main(void)
{
    for (int n = 0; n <= 16; n++) 
        std::cout << n << "! = " << factorial(n) << std::endl;
    return 0;
}

Hello, World!:

Пример для версий Borland C++ Builder 6, Microsoft Visual C++ 6, g++ 3.4.5, g++ 4.x
#include <iostream>

int main(void)
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

Числа Фибоначчи:

Пример для версий Borland C++ Builder 6, Microsoft Visual C++ 6
#include <iostream>

int fibonacci(int n)
{
    return (n<=2 ? 1 : fibonacci(n-1) + fibonacci(n-2));
}

int main(void)
{
    for (int n=1; n<=16; n++)
        std::cout << fibonacci(n) << ", ";
    std::cout << "..." << std::endl;
    return 0;
}

Факториал:

Пример для версий Borland C++ Builder 6, Microsoft Visual C++ 6

Используется рекурсивное определение факториала. Реализация отличается от альтернативной использованием типа __int64 вместо unsigned long long и функции вывода на печать printf вместо std::cout <<.

#include "stdio.h"

__int64 factorial(__int64 n)
{
	return (n==0 ? 1 : n*factorial(n-1));
}

int main(int argc, char* argv[])
{
	for (int n=0; n<=16; n++)
		printf("%d! = %I64d\n",n,factorial(n));
	return 0;
}

В закладки: ]]> Пиктограмма del.icio.us Пиктограмма БобрДобр.ru Пиктограмма Memori.ru Пиктограмма МоёМесто.ru ]]>