Елементи језика С++ као објектно оријентисаног језика

Радио: Иван Радојичић


Нови типови података

Типови података се деле на :

  • Целобројни
  • Реални
  • Специјални
  • Модификатори
  • Квалификатори

Целоборјни :

  • Int (цео број позитиван или негативан)
  • Char (знак ,обично АСЦИИ код)

Реални:

  • float (број са покретним зарезом)
  • double (као флоат али двоструко веће прецизности)

Специјални:

  • enum (набрајање)
  • void (означавање да функција не враћа вредност и не тражи параметре)

Модификатори:

  • short, long (за дужину,целобројни и рационални)
  • signed,unsigned( за знак +/- за целоборјне

Квалификатори:

  • const (означава да се објекту не може додељивати нова вредност)
  • volatile (означава да је вредност објекта зависна од оперативног систе,хардвера …)

 

Нови оператори

Симбол Опис рада или назив

() позив функције

[ ] индексирање

– > индиректни избор ставке

. директни избор ставке

++ — Increment/ decrement

sizeof Size in bytes

(type) Type cast [npr. (float) i]

! Logical NOT

~ Bitwise NOT

– аритметичка негација

+ унарни плус-нема ефекта

& Address

* на адреси,индиректан приступ

* / % множење,дељење,остатак

+ – сабирање,одузимање

<< >> леви шифт,десни шифт

< <= > >= поређење

== != једнакост,неједнакост

 

Улазно/излазни токови

Да би програм био користан, мора комуницирати с улазно/излазним уређајима (тастатуром, монитором, диском и сл.). Комуникација с улазно/излазним уређајима се у програму C++ остварује улазно-излазним токовима (енгл. input and output streams).
Сваки програм прима податке посредством улазно-излазних токова и резултат предаје околини посредством улазно-излазних токова. С гледишта програма сасвим је свеједно о којем је улазном или излазном уређају ријеч па се сви подаци у програм уносе и из програма предају околини на исти начин.
Улазно-излазним токовима се рукује функцијама библиотека iostream.

 

Именски простори

Именски простор је апстрактни контејнер или окружење израђено да садржи логично груписање јединствених идентификатора или симбола (тј. имена). Идентификатор дефинисан у именском простору је асоциран са тим именским простором. Исти идентификатор може бити независно дефинисан у више именских простора. То јест значење асоцирано са идентификатором дефинисано у једном именском простору може и не мора имати исто значење као исти идентификатор дефинисан у неком другом именском простору. Језици који подржавају именске просторе одређују правила која утврђују којем именском простору идентификатор (тј. не његова дефиниција) припада.

На пример, Пера ради за фирму Х и његов Р број је 123. Мика ради за фирму У и његовог Р број је такође 123. Пера и Мика могу имати исти Р број зато што они раде за различите фирме. Различите фиирме би у овом случају симболизовале различите именске просторе. Дошло би до озбиљне забуне ако би две особе радиле за исту фирму, а и даље имале исти Р број. На пример, чек са платом издат запосленом број Р123 не би идентификовао који човек треба да прими чек.

У великим компјутерским програмима или документима није неуобичајено да постоји стотине или хиљаде идентификатора. Именски простори (или слична техника, нпр. емулирани именски простори, обезбеђују механизам за скривање локалних идентификатора.

Они обезбеђују средства за груписање логички повезаних идентификатора у одговарајуће именске просторе, тим путем чине систем модуларним.
Компјутерски уређаји за складиштење података и многи модерни програмски језици обезбеђују подршку за именске просторе. Уређаји за чување података користе директоријуме (или фолдере) као именске просторе. Ово омогућава да две датотеке са истим именом буду сачуване на уређају све док се налазе у различитим директоријумима. У неким програмским језицима (нпр. C++, Пајтон) идентификатори који именују именске просторе и сами су асоцирани са именским простором који их обухвата. Дакле, у овим језицима именски простори се могу угнездити, формирајући стабло именских простора. У корену овог стабла је неименован глобални именски простор

У C++ језику, именски простор је дефинисан са блоком именског простора.

namespace abc (

int bar;

)

У оквиру овог блока, идентификатори се могу користити управо онако како су декларисани. Изван овог блока, спецификатор именског простора мора имати префикс. На пример, ван ‘’namespace abc bar’’ мора се написати “abc::bar” да би му се приступило. C++ поседује још једну конструкцију која чини овај вербализам непотребном.

using namespace abc;

Додавање линије using namespace abc;
делу кода, чини префикс abc:: непотребним
.

Код који није експлицитно декларисан унутар именског простора сматра се да је у глобалном именском простору.
Разрешавање именског простора у C++ је хијерархијско. То значи да се у оквиру хипотетичког именског простора храна::супа идентификатор пилећа односи на храна::супа::пилећа ако постоји. Ако не постоји, онда се односи на храна::пилећа, ако то постоји. Ако ни то не постоји, пилећа се односи на глобални идентификатор у именском простору.
Именски простори у C++ најчешће се користе како би се избегле колизије именовања. Иако су именски простори у широкој употреби у скорашњем C++ коду, већина старијег кода не користи ову погодност. На пример, цела C++ стандардна библиотека дефинисана је у оквиру namespace std, а пре стандардизације многе компоненте су првобитно биле у глобалном именском простору.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s