Обектът представя нещата от реалния свят или проблем от дадена сфера (пр. Червена кола със счупения мигач), представен логически на компютър.
Класът представя всички обекти от даден тип (пр. Кола). Той представлява описание на тип, включващ едновременно данни и функции, които ги обработват. Данните се наричат член-пром
е
н
ливи, а функциите – член-функции.
Дефиницията на един клас включва декларац
ия на класа и дефиниции на член-функциите.
Декларацията на класа и
ма следния синтаксис:
class <име-на-клас> {
// Декларации на член-променливи
// Декларации на чКласът представя всички обекти от даден тип (пр. Кола). Той представлява описание на тип, включващ едновременно данни и функции, които ги обрабо
тват. Данни
те с
е нар
ичат член-променливи, а функциите – член-функции.
Дефиницията на един клас вк
лючва
д
е
кларация на
к
л
а
са и
дефиниции на член-функциите.
Дек
лар
ацията на класа има следния синтаксис:
class <име-на-клас> {
// Декларации на ч
л
ен-променливи
//
Д
е
кларации на
чл
е
н-функции };
Д
е
ф
и
ницията на член-фу
н
кци
я
има следния синтакс
и
с
:
<тип-връщан-резултат> <име-на-клас>::<име-на-функция>(<списък с параметри>)
{ // Tяло на функцията }
За да се създаде обект, се използва имет
о на класа като спецификатор за типа. Следният ред декларира обект ob1 от тип triangle:
trian
gle ob1;
Нивата на достъп са private, pr
otected, public. При private членовете са видими само в същия класа, а при public са видиДефиницията на един клас включва декларация на класа и дефиниции на член-функциите.
Декларацията на класа
има следния синтаксис:
class <име-на-клас> {
// Декларации на
ч
л
ен-променливи
// Декларации на член-функции };
Дефиниц
и
я
та на член-функция има следния синтаксис:
<тип-връщан-резултат> <име-на-клас>::<име-на-функция>(<спиДекларацията на класа има следния синтаксис:
class <име-на-клас> {
// Декларации на член-променливи
// Декларации на член-функции };
Дефиницията на член-функция има следнclass <име-на-клас> {
// Декларации на член-променливи
// Декларации на член-функции } // Декларации на член-променливи
// Декларации на член-функции };
Дефиницията на член-функция има следния с
// Декларации на член-променливи
// Декларации на член-функции };
Дефиницията на член-функция има следния синтаксис:
<тип-връщан-резулта // Декларации на член-функции };
Дефиницията на член-функция има следния синтаксис:
<тип-връщан-резултат> <име-на-клас>::<име-на-функция>(<Дефиницията на член-функция има след
н
и
я синтаксис:
<тип-връщан-резултат> <име-на-клас>::<име-на-функция>(<списък
с параметри>)
{ // Tяло на функцията }
3. Класове и обекти. Прехо
д от структура към клас<тип-връщан-резултат> <име-на-клас>::<име-на-функция>(<списък с параметри>)
{ // Tяло на функцията }
3. Класове и обекти. Преход от структура към клас.
Класът представлява описание на тип, включващ едновременно данни и функ
ции, които
ги о
брабо
тват. Данните се наричат член-променливи, а функциите – чл{ // Tяло на функци
ята }
3
. Класове и
о
б
е
кти.
Преход от структура към клас.
Кл
асъ
т представлява о
33. Класове и обекти. Преход от структура към клас.
Класът представ
л
ява описание на тип
,
в
ключващ едн
о
вр
е
менно данни и
ф
у
н
кции, които ги обр
а
бот
в
ат. Данните се нарич
а
т
ч
лен-променливи, а функциите – членКласът представлява описание на тип, включващ едновременно данни и функции, които ги обработват. Данните се
наричат член-променливи, а функциите – член-функции.
Обекти са заделени в паметта едини
ци от
даден тип клас.
Класът синтактически при
лича на структурата. Класовете и структурите имат идентични потенциални възможности. В С++ деф на една структура е разширена така, че да включва член функции включително конструктури и деструкту
ри по същия начин както и класовете. Единствената разлика м/у структ
у
р
а и клас е, че по подразбиране членовете на един клас са
P
r
ivate, а тези на структурата – Public.
Разширен синтаксис на една структура:
sОбекти са заделени в паметта единици от даден тип клас.
Класът синтактически прилича на структурата. Класовете и структурите имат идентични потенциални възможности. В С++ деф на една структура е разширена така, че да включКласът синтактически прилича на структурата. Класовете и структурите имат идентични потенциални възможности. В С++ деф на една структура е разширена така, че да включва член функции вкл
Деструкторът се извиква автоматично при разрушаването на обект от класа. Деструкторът има същото име като класа, но предшествано от символа ~. Деструкторът не може да връща резултат и не може да има аргументи. В един клас може да има само един деструктор. Ако липсва, то той бива генериран автоматично от компилатора, ка
т
о
в него просто се освобождават член-променливите на класа. Общият вид на де
структора е:
<име-на-клас>:: ~<име-на-клас>()
{ //Тяло на дестру
ктор }
Деструкторите не се наследяват автоматично и трябва ръчно да се предефинират при наследени класове.
При наследяване е добре да дефинираме базовия деструктор като виртуален за да не възникнат проблеми при освобождаването на памет.
6.Типове
променливи
и о
перат
ори в клас.Основни типове данни.
В С++ има различни типове променливи – за це
ли чи
сл
а
, за числа
с
д
е
сети
чна запетая, за символи, низове и
тн
. Примери за типове променливи са : char, short int, int, float, double , bool и тн.
Оператори: В езика
С
+
+ има богат
н
а
бор от операто
р
и
.
В него са дадени с
ъ
що
и
средства за предефи
н
и
р
а
не.
Всеки оператор се харектеризира с :
-позиция на оператора спрямо аргомента му;
-приоритет
-асоциативност;
Позицията на оператора спрямо ар
гумента му го определя като: префиксен(оператора е пред единствения си аргумент --i), и
нфиксе
н(оператора е между аргументите си- 4+2)
,постфиксен(оператора е след аргументите си i++).
Приоритетът на оператора определя редът на изпалнение на операторите.Оператора с по-висок преоритет се изпалнявя преди оператора с по-нисак прео
ритет. (Пример: Преоритета на * и / е по-висок от този на + и -).
А
с
о
циативността определя реда на изпълнение на<име-на-клас>:
:
~<име-на-клас>()
{ //Тяло на деструктор }
Деструкторите не се наследяват автоматично и трябва ръчно да се предеф{ //Тяло на деструктор }
Деструкторите не се наследяват автоматично и трябва ръчно да се предефинират прДеструкторите не се наследяват автоматично и трябва ръчно да се предефинират при наследени класове.
При наследяване е добре да дефинираме базовия деструктор като виртуален за да не възникнат проблеми при освобождаването на памет.
6.Типове променливи и оператори в
Особености:
- Приоритети - както в математикат- Приоритети - както в математиката (най-напред се извършват действия *, / и % и след тях + и -)
- Използване на скоби за промяна на реда на изпълнение на аритметичните операции.
- Аргументна зависимост - действието на операцията зависи от типа на аргументите.
- Двата арг
у
м
ента на аритметичните операции трябва да са от един и същи числов тип данни
; резултатът е от същия тип.- Разрешен- Използване на скоби за пр
омяна на реда на изпълнение на аритметичните операции.
- Аргументна зависимост - действието на операцията зависи от типа на аргументите.
- Двата аргумента на аритметичните операции трябва да са от един и същи числов тип данни; резултатът е от същ
ия тип.- Р
азре
шено
е единият от аргументите да е от- Аргументна зависимост - действието на опера
цията
з
а
виси от тип
а
н
а
арг
ументите.
- Двата аргумента на а
рит
метичните операции трябва да са от един и същи числов тип данни; резултатът е от същ
и
я тип.- Разрешено
е
е
диният от а
р
гу
м
ентите да е от
т
и
п double/float, а
д
руг
и
я - от тип int; тога
в
а
а
ргумента от тип int се преобразува (- Двата аргумента на аритметичните операции трябва да са от един и същи числов тип данни; резултатът е от
същия тип.- Разрешено е единият от аргументите да е от тип double/float, а другия - от
тип i
nt; тогава аргумента от тип int се преоб
разува (автоматично) на тип double и след това се извършва аритметичната операция - с аргументи тип double.
7. Указатели и референции. Константи. Изброими типове.
Указател е променлива съдържа
ща адреса на даден обект или променлива, а не самият той. Указателят
т
рябва да бъде от същия тип (или производен), какъвто е об
е
к
та, когото сочи. Пример:
int X=10; – декларира променлива Х със стойност 10
int* pX= &X; – декларира указател и му дава адреса на променливата Х
*pX = 4; - достъпване на самата стойност която сочи указателят.
Референциите позволяват да се създаде 2ро име на дадена променлива, което се използва за да се променя оригиналът. Ако аргументите на дадена функция са референции, то тогава може ефективно да се променя информацията подадена на функцията. Референцията е нещо като постоянен
Ако искаме указателят да е константен и да сочи постоянно даден адрес:
char* const p = “abcd”;
p[3] = ‘a’; // OK!
p = “qrtw”; //wrong!
Възможно е двата варианта да се комбинират:
const char* const p = “abcd”;
Изброимите типове:
Изброими типове в C++ са: bool, char, int и т.н.
Избchar* const p = “abcd”;
p[3] = ‘a’; //
O
K!
p = “qrtw”; //wrong!
Възможно е двата варианта да сp[3] = ‘a’; // OK!
p
= “qrtw”; //wrong!
Възможно е двата варианта да се коp = “qrtw”; /
/wrong!
Възможно е двата варианта да се комбинират:
const char* constВъзможно е двата варианта да се комбинират:
const char* const p = “abcd”;
Изброимите типове:
Изброими типове в C++ са: bool, char, int и т.н.
Изброим тип е крайно множествоcons
t char* con
st p
= “a
bcd”;
Изброимите типове:
Изброими типове в C++ са: bool, char, int и т.н.
И
зброи
м
т
ип е крайно
м
И
Избр
оимите типове:
Изброими типове в
C++
са: bool, char, int и т.н.
ИзброиИзброими типове в C++ са: bool, char, int и т.н.
И
з
броим тип е крайно
м
н
о
жество от с
т
ой
н
ости. В C++ вс
я
к
а
единица от това м
н
оже
с
тво съответства на i
n
t
к
онстанта. Дефинират се чрез enum:
enum WorИзброим тип е крайно множество от стойности. В C++ всяка единица от това множество съответства на in
t константа. Дефинират се чрез enum:
enum WorkDays {Monday, Tuesday, Wenesday, Thursday
, Frid
ay}
WorkDays today = Monday;
today е про
менлива от изброения тип и може да й се присвояват само стойности от множеството. Възможно е да се задеде на коя единица какво число да отговаря:
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте