C++

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
C++
Парадигма хибриден език: обобщено програмиране, обектно-ориентиран, процедурен
Реализиране през 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:
  double price;
  int year;
  string name;
  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

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

  1. виж ISO/IEC 14882
Година C++ Стандарт Неформално име
1998 ISO/IEC 14882:1998 C++98
2003 ISO/IEC 14882:2003 C++03
2007 ISO/IEC TR 19768:2007 C++TR1
2011 ISO/IEC 14882:2011 C++11
2014 ISO/IEC 14882:2014(E) C++14

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

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