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 | |
Sun Studio | Sun Microsystems | Solaris, OpenSolaris, Linux | SPARC, x86, x86-64 | |
Intel C++ Compiler | Intel | Linux, Mac OS X, Windows | x86, x86-64 | |
Borland C++ | Borland | Windows | i86pc | |
Open Watcom | Sybase | Windows | i86pc | |
Visual C++ | Microsoft | Windows | x86, x86-64 |
Стандарти[редактиране | редактиране на кода]
- виж 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 |