C++

от Уикипедия, свободната енциклопедия
(пренасочване от C Plus Plus)
Направо към навигацията Направо към търсенето
C++
ISO C++ Logo.svg
Парадигма хибриден език: обобщено програмиране, обектно-ориентиран, процедурен
Реализиране през 1985, последно ревизиран 2013
Автор Бярне Строуструп
Типизация на данните статичен, слаба, необезопасена, номинативен
Програмни диалекти ANSI C++ 1998, ANSI C++ 2003
Повлиян от C, Simula, Ada 83, CLU
Повлиява Ada 95, C#, Java, PHP, D
C++ в Общомедия

С++ (произнася се „си-плюс-плюс“) е неспециализиран език за програмиране от високо ниво. Той е обектно-ориентиран език със статични типове. От 1990-те, C++ е един от най-популярните комерсиални езици за програмиране.

Бярне Строуструп разработва C++ през 1983 г. в Лабораториите Бел като разширение на езика C – езикът е базиран на C, но в него са добавени редица допълнителни възможности и са направени няколко промени. Основната разлика между C и C++ е, че C++ съдържа вградена в езика поддръжка на обектно-ориентирано програмиране. В C++ са добавени класове, множествено наследяване, виртуални функции, overloading, шаблони (templates), обработка на изключения (exceptions) и вградени оператори за работа с динамична памет. Езиковият стандарт на C++ е ратифициран през 1998 като ISO/IEC 14882:1998, през 2003 година има преразглеждане на стандарта – ISO/IEC 14882:2003, а текущата му версия е от 2011 – ISO/IEC 14882:2011.

Повечето програми на C могат директно или със съвсем малки модификации да бъдат компилирани с компилатор за езика C++. Поради паралелното си развитие с Turbo Pascal и Object Pascal в посока обектна ориентираност, С++ има общи черти с тях, но съществуват и редица разлики. Поради заимстване на множество концепции от C++, езикът Java има много общи черти със C++.

Една голяма част от приложните програми на много операционни системи, както и някои от самите операционни системи, са написани на този език.

Hello, World![редактиране | редактиране на кода]

Една примерна програма „Hello, World!“, реализирана на С++, изглежда така:

#include <iostream>
using namespace std;

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

Работа с прости обекти[редактиране | редактиране на кода]

#include <iostream>
#include <string>
using namespace std;

//обект реализиращ книга в книжарница
class Book
{
public:
  string name;
  double price;
  int year;
  void ShowInfo() const
  {
    cout << "Заглавие: " << name << "\n";
    cout << "Цена: " << price << "\n";
    cout << "Година на издаване: " << year << "\n";
  }
};

int main()
{
  Book book;
  cout << "Въведете заглавие: ";
  getline(cin, book.name); //прочитаме ред от стандартният вход
  cout << "Въведете цена: ";
  cin >> book.price;
  cout << "Въведете дата на издаване: ";
  cin >> book.year;

  book.ShowInfo(); //извеждаме получените данни
  return 0;
}

Философия на езика[редактиране | редактиране на кода]

В „The Design and Evolution of C++ (1994)“, Бярне Строуструп изяснява някои от правилата, според които той е моделирал C++:

  • C++ е моделиран като статичен език за общи цели, като запазва ефикасността и преносимостта на C
  • C++ е създаден да поддържа множество стилове на програмиране (процедурно програмиране, абстракция на данните, обектно-ориентирано програмиране и обобщено програмиране)
  • C++ е създаден да дава избор на програмиста, дори той да е неправилен
  • C++ е моделиран като умерен преход от C
  • C++ избягва функции, които са платформено-зависими
  • C++ е създаден да работи без сложна среда за разработка

Познаването на правилата помага за правилното разбиране на C++. Много повече за езика може да бъде открито в „The Design and Evolution of C++“.

Компилатори[редактиране | редактиране на кода]

Компилатор Компания Операционни системи Архитектури Безплатни
GNU Compiler Collection GNU BSD, Linux, Mac OS X, OpenSolaris, Solaris, Windows ARM, MIPS, PowerPC, SPARC, x86, x86-64 Ok
Sun Studio Sun Microsystems Solaris, OpenSolaris, Linux SPARC, x86, x86-64 Ok
Intel C++ Compiler Intel Linux, Mac OS X, Windows x86, x86-64 Не
Borland C++ Borland Windows i86pc Ok
Open Watcom Sybase Windows i86pc Ok
Visual C++ Microsoft Windows x86, x86-64 Ok

Стандарти[редактиране | редактиране на кода]

Езикът е международно стандаритизиран със стандарта ISO/IEC 14882. Различните версии на езика представляват обновявания на стандартизационния документ и, за разлика от други езици, които имат обикновени числови версии, е прието версиите на С++ да се наричат на годината на издаване.

След 2011 стандартизационният комитет се ангажира да обновява версията на езика на всеки три години. Съответно следващата версия на езика се очаква през 2020 под името C++20.

Година C++ Стандарт Неформално име
1998 ISO/IEC 14882:1998 C++98
2003 ISO/IEC 14882:2003 C++03
2011 ISO/IEC 14882:2011 C++11
2014 ISO/IEC 14882:2014 C++14
2014 ISO/IEC 14882:2017) C++17

Външни препратки[редактиране | редактиране на кода]

Уикикниги
В Уикикниги има на разположение: