Ц ++ класа и објекат са примером

Преглед садржаја:

Anonim

Шта је час?

Класа Ц ++ комбинује податке и методе за манипулацију подацима у један. Часови такође одређују облике предмета. Подаци и методе садржани у класи познати су као чланови класе. Класа је кориснички дефинисани тип података. Да бисмо приступили члановима класе, користимо инстанцу класе. Класу можете видети као нацрт објекта.

Разред треба бити прототип куће. Приказује локацију и величине врата, прозора, подова итд. Из ових описа можемо изградити кућу. Кућа постаје објект. Од прототипа је могуће створити многе куће. Такође је могуће створити много објеката из класе.

На горњој слици имамо прототип једне куће. Од овог прототипа створили смо две куће са различитим карактеристикама.

У овом упутству ћете научити:

  • Шта је час?
  • Пример класе
  • Приватне и јавне кључне речи
  • Дефиниција објекта
  • Приступ члановима података
  • Функције члана одељења
  • Конструктори и деструктори

Разредна декларација

У Ц +, класа се дефинише помоћу кључне речи цласс. Ово би требало да прати назив класе. Затим се тело класе додаје између витичастих заграда {}.

Синтакса:

class class-name{// data// functions};
  • Име класе је име које треба доделити класи.
  • Подаци су подаци за класу, који се обично декларишу као променљиве.
  • Функције су функције класе.

Приватне и јавне кључне речи

Сигурно сте наишли на ове две кључне речи. Они су модификатори приступа.

  • Приватни:

Када се приватна кључна реч користи за дефинисање функције или класе, она постаје приватна. Такви су доступни само унутар разреда.

  • Јавно:

Кључна реч публиц, с друге стране, чини податке / функције јавним. Њима се може приступити изван разреда.

Дефиниција објекта

Објекти се креирају из класа. Објекти класе се декларишу на сличан начин као што се декларишу променљиве. Име класе мора започети, а затим име објекта. Објекат типа класе.

Синтакса:

class-name object-name;
  • Име класе је име класе из које треба да се креира објекат.
  • Име објекта је име које се додељује новом објекту.

Овај процес стварања објекта из класе познат је под називом инстанцирање.

Приступ члановима података

Да бисмо приступили јавним члановима класе, користимо (.) Тачкасти оператор. То су чланови означени модификатором јавног приступа.

Пример 1:

#include using namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите датотеку заглавља иостреам у наш код како бисте користили његове функције.
  2. Укључујући простор имена стд у наш код да би користио његове класе без позива.
  3. Прогласите предавање по имену Телефон.
  4. Коришћење модификатора јавног приступа за обележавање променљивих које ћемо створити као јавно доступне.
  5. Наведите променљиву цену двоструког типа података.
  6. Прогласите целобројну променљиву са именом слотс.
  7. Крај предавања.
  8. Позивање главне () функције. Програмска логика треба да се дода унутар њеног тела.
  9. Направите објекат назван И6 типа Телефон. То се назива инстанцирање.
  10. Направите објекат назван И7 типа Телефон. То се назива инстанцирање.
  11. Приступите променљивој / цени члана класе Телефон помоћу објекта И6. Вредност је постављена на 100,0. Трошак И6 је сада постављен на 100,0.
  12. Приступите слотовима променљивих / чланова класе Телефон помоћу објекта И6. Вредност је постављена на 2. Прорези за И6 су сада постављени на 2.
  13. Приступите променљивој / чланској цени класе Телефон помоћу објекта И7. Вредност је постављена на 200,0. Цена И7 је сада постављена на 200,0.
  14. Приступите слотовима променљивих / чланова класе Телефон помоћу објекта И7. Вредност је постављена на 2. Прорези за И7 су сада постављени на 2.
  15. Одштампајте трошкове И6 на конзоли заједно са другим текстом.
  16. Одштампајте трошкове И7 на конзоли заједно са другим текстом.
  17. Одштампајте број места за И6 заједно са осталим текстом.
  18. Одштампајте број места за И7 уз други текст.
  19. Програм мора вратити вредност након успешног завршетка.
  20. Крај тела главне () функције.

Шта је приватна класа?

Члановима класе који су означени као приватни могу се приступити само функцијама дефинисаним у класи. Било који објекат или функција дефинисана изван класе не може директно приступити таквим члановима. Члану приватне класе приступају само функције члана и пријатеља.

Шта је заштићена класа?

Чланови разреда који су означени као заштићени имају предност у односу на оне који су означени као приватни. Могу им приступити функције унутар класе њихове дефиниције. Поред тога, могу им се приступити из изведених класа.

Пример 2:

#include using namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите иостреам датотеку заглавља у наш код да бисте користили његове функције.
  2. Укључите стд простор имена у наш код да бисте користили његове класе без позивања.
  3. Направите класу под називом ЦлассА.
  4. Користите модификатор јавног приступа да бисте члана класе означили као јавно доступну.
  5. Креирајте функцију названу сет_а () која узима једну целобројну вредност вал.
  6. Креирајте функцију која се зове гет_а ().
  7. Користите модификатор приватног приступа да бисте члана класе означили као приватно доступан.
  8. Прогласите целобројну променљиву која се зове а.
  9. Крај предавања.
  10. За приступ функцији гет_а () користите назив класе и оператор резолуције опсега. Желимо да дефинишемо шта функција ради када се позове.
  11. Функција гет_а () треба да врати вредност променљиве а када се позове.
  12. Крај дефиниције функције гет_а ().
  13. За приступ функцији сет_а () користите назив класе и оператер резолуције опсега. Желимо да дефинишемо шта функција ради када се позове.
  14. Додељивање вредности променљиве вал променљивој а.
  15. Крај дефиниције функције сет_а ().
  16. Позовите главну () функцију. Логику програма треба додати у тело ове функције.
  17. Направите инстанцу ЦлассА и дајте јој име а.
  18. Користите горњу инстанцу класе и функцију сет_а () да променљивој а доделите вредност 20.
  19. Штампање одређеног текста уз вредност променљиве а на конзоли. Вредност променљиве а добија се позивањем функције гет_а ().
  20. Програм мора вратити вредност након успешног завршетка.
  21. Крај тела функције маин ().

Пример 3:

#include using namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите иостреам датотеку заглавља у наш код да бисте користили његове функције.
  2. Укључите стд простор имена у наш код да бисте користили његове класе без позивања.
  3. Направите класу под називом ПарентЦласс.
  4. Помоћу модификатора заштићеног приступа означите члана класе који ће бити створен као заштићен.
  5. Направите целобројну променљиву која се назива вредност.
  6. Крај предавања.
  7. Направите нову класу под именом ЦхилдЦласс која наслеђује ПарентЦласс.
  8. Помоћу модификатора заштићеног приступа означите члана класе који ће бити створен као доступан дечјим класама.
  9. Направите функцију названу сетИд () која узима једну целобројну вредност к.
  10. Додељивање вредности променљиве к вредности променљиве.
  11. Крај дефиниције функције сетИд ().
  12. Креирајте функцију која се зове дисплаиВалуе ().
  13. Испишите вредност променљиве именоване вредности на конзоли уз други текст.
  14. Крај тела функције дисплаиВалуе ().
  15. Крај тела класе ЦхилдЦласс.
  16. Позовите главну () функцију. Логику програма треба додати у тело ове функције.
  17. Направите инстанцу ЦхилдЦласс и дајте му име ц.
  18. Користите горњу инстанцу класе и функцију сетИд () да променљивој к доделите вредност 21.
  19. Користите горњу инстанцу класе да позовете функцију која се зове дисплаиВалуе ().
  20. Програм мора вратити вредност након успешног завршетка.
  21. Крај тела функције маин ().

Функције члана одељења

Функције нам помажу у манипулисању подацима. Функције члана класе могу се дефинисати на два начина:

  • Унутар дефиниције класе
  • Изван дефиниције класе

Ако се функција треба дефинисати изван дефиниције класе, морамо користити оператор резолуције опсега (: :). Ово би требало пратити имена класа и функција.

Пример 2:

#include #include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите датотеку заглавља иостреам у наш програм да бисте користили његове функције.
  2. Укључите датотеку заглавља низа у наш програм да бисте користили његове функције.
  3. Укључите стд простор имена у наш код да бисте користили његове класе без позивања.
  4. Направите класу под називом Гуру99.
  5. Помоћу модификатора јавног приступа означите чланове разреда које ћемо створити као јавно доступне.
  6. Створите променљиву низа под називом туториал_наме.
  7. Направите целобројну променљиву која се зове ид.
  8. Креирајте функцију која се зове принтнаме (). Ова функција није дефинисана у оквиру дефиниције класе.
  9. Направите функцију названу принтер (). Ова функција је дефинисана у оквиру дефиниције класе. Њено тело је додато у дефиницију класе.
  10. Исписати вредност променљиве ид уз други текст на конзоли. Имајте на уму да је ово додато у тело функције принтид (). Извршиће се само када се позове функција принтид ().
  11. Крај тела функције принтид ().
  12. Крај тела класе Гуру99.
  13. Почетак дефиниције функције принтнаме ().
  14. Испишите вредност променљиве туториал_наме на конзоли заједно са другим текстом. Имајте на уму да је ово додато у тело функције принтнаме (). Извршиће се само када се позове функција принтнаме ().
  15. Крај дефиниције функције принтнаме ().
  16. Позовите главну () функцију. Логику програма треба додати у тело ове функције.
  17. Направите инстанцу класе Гуру99 и дајте јој име гуру99.
  18. Користите горњу инстанцу да променљивој туториал_наме доделите вредност Ц ++.
  19. Користите инстанцу гуру99 да променљивој ид доделите вредност 1001.
  20. Користите инстанцу гуру99 за позивање функције принтнаме ().
  21. Позовите наредбу енд (енд лине) да бисте исписали нову празну линију на конзоли.
  22. Користите инстанцу гуру99 да позовете функцију принтид ().
  23. Програм мора вратити вредност након успешног завршетка.
  24. Крај тела главне () функције.

Конструктори и деструктори

Шта су конструктори?

Конструкти су посебне функције које иницијализују објекте. Компајлери Ц ++ позивају конструктор приликом креирања објекта. Конструктори помажу у додељивању вредности члановима класе. Наравно, то је након што им је додељен део меморијског простора.

Шта су деструктори?

С друге стране, деструктори помажу у уништавању предмета класе.

Име конструктора мора бити слично имену класе. Конструктори немају повратни тип.

Конструктор се може дефинисати унутар или изван тела класе. Ако је дефинисано изван тела класе, требало би га дефинисати именом класе и оператором резолуције опсега (: :).

Пример 3:

#include using namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"<

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите датотеку заглавља иостреам у код да бисте користили његове функције.
  2. Укључите стд простор имена у наш код да бисте користили његове класе без позивања.
  3. Направите класу под називом ЦлассА.
  4. Користите модификатор јавног приступа да бисте члана којег ћемо створити означили као јавно доступног.
  5. Направите конструктор за класу.
  6. Текст за испис на конзоли када се позове конструктор. Ендл је кључна реч Ц ++, што значи крајњи ред. Премешта курсор миша у следећи ред.
  7. Крај тела конструктора класе.
  8. Направите деструктор за класу.
  9. Текст за испис на конзоли када се позове деструктор. Ендл је кључна реч Ц ++, што значи крајњи ред. Премешта курсор миша у следећи ред.
  10. Крај тела деструктора.
  11. Крај предавања.
  12. Позовите главну () функцију. Логику програма треба додати у тело ове функције.
  13. Креирајте објект класе и дајте му име а. Позваће се конструктор.
  14. Направите целобројну променљиву која се зове п и доделите јој вредност 1.
  15. Креирајте блок наредбе иф користећи променљиву п.
  16. Направите објект класе и дајте му име б. Позваће се деструктор.
  17. Крај тела изјаве иф.
  18. Крај тела главне () функције.

Резиме:

  • Ц ++ је објектно оријентисан.
  • Часови чине главне карактеристике Ц ++-а које га чине објектно оријентисаним.
  • Класа Ц ++ комбинује податке и методе за манипулацију подацима у један.
  • Класа је нацрт објекта.
  • Часови одређују облик предмета.
  • Подаци и методе садржани у класи познати су као чланови класе.
  • Да бисте приступили члановима класе, требало би да користите инстанцу класе.
  • Да бисмо креирали класу, користимо кључну реч цласс.
  • Функције члана класе могу се дефинисати унутар или изван класе.