C++ — разлика између измена
Садржај обрисан Садржај додат
Спашавам 1 извора и означавам 0 мртвим.) #IABot (v2.0.1 |
Исправљене словне грешке |
||
Ред 5:
== Историја C++-а ==
Почетком осамдесетих година у Беловим лабораторијама Бјарне Строуструп, дански научник, радећи на проширивању језика C развио је суштински нов језик кога је назвао ''C са класама''. <ref>{{cite web|title=History of C++|url=http://www.cplusplus.com/info/history/|accessdate=28. 11. 2017.}}</ref> <ref>{{cite web|title=Bjarne Stroustrup's FAQ: "When was C++ invented?"|url=http://www.stroustrup.com/bs_faq.html#invention}}</ref>Закључио је да је [[Simula]] имала веома добре функције за развој великих програма, али је тај језик био преспор за коришћење у пракси. [[BCPL]] ([[Енглески језик|енгл]]. ''Basic Combined Programming Language'') је био брз али превише ниског нивоа за
Језик C++ се разликује од обичног C-а пре свега подршком објектно-оријентисаном програмирању. Али, у њему има и низ нових
Ред 17:
== Назив ==
Према Строуструпу назив C++ симболизује еволуционарни напредак од C-a.<ref name="name">{{cite web|url=http://www.stroustrup.com/bs_faq.html#name |title=Bjarne Stroustrup's FAQ – Where did the name "C++" come from? |accessdate=16. 1. 2008 }}</ref> Назив је осмислио Рик Масцити. Када је Масцити био неформално интервјуисан о настанку имена 1992. године, одговорио је да је назив настао у духу
== Развојна окружења ==
Ред 60:
</source>}-
Линије 4 и 8 указују компајлеру које линије припадају -{<code>main()</code>}- функцији. Све линије кода које се налазе између отворене витичасте заграде у линији 4, и затворене витичасте заграде у линији 8 представљају део -{<code>main()</code>}- функције. У линији 5 је наш први исказ. Опис операција -{<code>cout</code>}- и -{<code>endl</code>}- се налази у оквиру библиотеке -{<code>iostream</code>}-. Међутим, у оквиру библиотеке -{<code>iostream</code>}-, постоји тачно одређени именски простор -{<code>std</code>}- у оквиру кога је наведена дефиниција ових функција за штампање. Стога је неопходно коришћењем исказа -{<code>using</code>}- указати
== Референце у језику C++ ==
Ред 71:
активним делом меморије односно складишта (storage).
* Једном иницијализована референца не може бити промењена да референцира другу променљиву или објекат. Супротно референцама,
показивачи могу да буду
* Референца мора бити иницијализована приликом креирања, за разлику од показивача који могу бити иницијализовани у било ком тренутку.
Ред 101:
Конструктор је функција чланица која има исто име као и класа. Улога конструктора је да изврши иницијализацију података чланова класе. За разлику од програмског језика [[Јава (програмски језик)|Java]], где се такозвани „објекти отпаци“ аутоматски бришу коришћењем такозваног garbage collector-a, у C++-у је неопходно написати функцију која мора да обрише алоцирани меморијски простор из хип меморије. Подразумевајуће функције чланице класе које служе у ову сврху се називају деструктори. C++ има могућност да се при позиву конструктора изврши такозвано копирање објеката. Типови конструктора који имају могућност извршења оваквих операција се називају конструктори копирања.
Конструктор класе је специјална функција чланица класе која се извршава сваки пут када се креира нова инстанца неке класе.
=== Показивачи на C++ класе ===
Ред 111:
=== Наслеђивање ===
Наслеђивање је једна од најважнијих особина објектно оријентисаног програмирања. Оно омогућава креирање врло сложених класа крећући се од
Ред 120:
Један од проблема вишеструког наслеђивања је двосмисленост, која се јавља у случају када базне класе садрже функције са истим називима. Други, и много озбиљнији је проблем „дијаманта“ који настаје када нека класа наслеђује особине две базне класе, а те базне класе су изведене из исте основне класе. Ово води до појаве такозваног дијамантског облика наслеђивања.
Многи релативно новији језици као што су Јава и C # ограничавају класе на једноструком наслеђивању, али дозвољавају вишеструко наслеђивање интерфејса. Главна идеја онемогућавања вишеструког наследства у овим језицима је чињеница да оно једноставно чини језике превише сложеним, а на крају изазива нове проблема уместо да
== C++ стандардна библиотека ==
Ред 127:
* Библиотека OO класа (The Object Oriented Class Library): Представља колекцију класа и одговарајућих функција чланица.
'''Стандардна библиотека функција''' се састоји из следећих категорија:
|