Класс и объект C ++ с примером

Содержание:

Anonim

Что такое класс?

Класс C ++ объединяет данные и методы для управления данными в один. Классы также определяют формы предметов. Данные и методы, содержащиеся в классе, называются членами класса. Класс - это определяемый пользователем тип данных. Для доступа к членам класса мы используем экземпляр класса. Вы можете рассматривать класс как схему объекта.

Класс - это прототип дома. На нем показано расположение и размеры дверей, окон, полов и т. Д. Из этих описаний мы можем построить дом. Дом становится объектом. По прототипу можно построить много домов. Кроме того, из класса можно создать множество объектов.

На приведенном выше рисунке у нас есть прототип одиночного дома. На основе этого прототипа мы создали два дома с разными характеристиками.

В этом руководстве вы узнаете:

  • Что такое класс?
  • Пример класса
  • Частные и общедоступные ключевые слова
  • Определение объекта
  • Доступ к элементам данных
  • Функции-члены класса
  • Конструкторы и деструкторы

Объявление класса

В C + класс определяется с помощью ключевого слова class. За ним должно следовать имя класса. Затем тело класса добавляется между фигурными скобками {}.

Синтаксис:

class class-name{// data// functions};
  • Имя класса - это имя, которое нужно присвоить классу.
  • Данные - это данные для класса, обычно объявленные как переменные.
  • Функции - это функции класса.

Частные и общедоступные ключевые слова

Вы, должно быть, встречали эти два ключевых слова. Это модификаторы доступа.

  • Частный:

Когда ключевое слово private используется для определения функции или класса, он становится закрытым. Такие доступны только изнутри класса.

  • Публичный:

Ключевое слово public, с другой стороны, делает данные / функции общедоступными. Они доступны вне класса.

Определение объекта

Объекты создаются из классов. Объекты класса объявляются аналогично объявлению переменных. Имя класса должно начинаться, а за ним следует имя объекта. Объект типа класса.

Синтаксис:

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. Включите файл заголовка iostream в наш код, чтобы использовать его функции.
  2. Включение пространства имен std в наш код для использования его классов без его вызова.
  3. Объявите класс с именем Phone.
  4. Использование модификатора общего доступа, чтобы пометить переменные, которые мы собираемся создать, как общедоступные.
  5. Объявите переменную стоимость двойного типа данных.
  6. Объявите целочисленную переменную с именем slots.
  7. Конец тела класса.
  8. Вызов функции main (). Логика программы должна быть добавлена ​​в ее тело.
  9. Создайте объект с именем Y6 типа Phone. Это называется созданием экземпляра.
  10. Создайте объект с именем Y7 типа Phone. Это называется созданием экземпляра.
  11. Получите доступ к стоимости переменной / члена класса Phone с помощью объекта Y6. Значение установлено на 100,0. Стоимость Y6 теперь установлена ​​на 100.0.
  12. Получите доступ к слотам переменных / членов класса Phone с помощью объекта Y6. Значение установлено на 2. Слоты для Y6 теперь установлены на 2.
  13. Получите доступ к стоимости переменной / члена класса Phone с помощью объекта Y7. Значение установлено на 200.0. Стоимость Y7 теперь составляет 200.0.
  14. Получите доступ к слотам переменных / членов класса Phone с помощью объекта Y7. Значение установлено на 2. Слоты для Y7 теперь установлены на 2.
  15. Напечатайте стоимость Y6 на консоли рядом с другим текстом.
  16. Напечатайте стоимость Y7 на консоли рядом с другим текстом.
  17. Выведите количество слотов для Y6 рядом с другим текстом.
  18. Выведите количество слотов для Y7 рядом с другим текстом.
  19. Программа должна вернуть значение после успешного завершения.
  20. Конец тела функции main ().

Что такое частный класс?

К членам класса, помеченным как частные, могут получить доступ только функции, определенные внутри класса. Любой объект или функция, определенные вне класса, не могут напрямую обращаться к таким членам. Доступ к частному члену класса возможен только для функций-членов и друзей.

Что такое защищенный класс?

Члены класса, отмеченные как защищенные, имеют преимущество перед теми, кто отмечен как закрытые. К ним могут обращаться функции внутри класса их определения. Кроме того, к ним можно получить доступ из производных классов.

Пример 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. Включите файл заголовка iostream в наш код, чтобы использовать его функции.
  2. Включите пространство имен std в наш код, чтобы использовать его классы без его вызова.
  3. Создайте класс с именем ClassA.
  4. Используйте модификатор публичного доступа, чтобы пометить член класса, который будет создан как общедоступный.
  5. Создайте функцию с именем set_a (), которая принимает одно целое значение val.
  6. Создайте функцию с именем get_a ().
  7. Используйте модификатор частного доступа, чтобы пометить член класса, который будет создан как частный.
  8. Объявите целочисленную переменную с именем.
  9. Конец тела класса.
  10. Используйте имя класса и оператор разрешения области видимости для доступа к функции get_a (). Мы хотим определить, что делает функция при вызове.
  11. Функция get_a () должна возвращать значение переменной a при вызове.
  12. Конец определения функции get_a ().
  13. Используйте имя класса и оператор разрешения области видимости для доступа к функции set_a (). Мы хотим определить, что делает функция при вызове.
  14. Присвоение значения переменной val переменной a.
  15. Конец определения функции set_a ().
  16. Вызовите функцию main (). Логика программы должна быть добавлена ​​в тело этой функции.
  17. Создайте экземпляр ClassA и присвойте ему имя a.
  18. Используйте приведенный выше экземпляр класса и функцию set_a (), чтобы присвоить значение 20 переменной a.
  19. Печать текста рядом со значением переменной a на консоли. Значение переменной a получается путем вызова функции get_a ().
  20. Программа должна вернуть значение после успешного завершения.
  21. Конец тела функции main ().

Пример 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. Включите файл заголовка iostream в наш код, чтобы использовать его функции.
  2. Включите пространство имен std в наш код, чтобы использовать его классы без его вызова.
  3. Создайте класс с именем ParentClass.
  4. Используйте модификатор доступа protected, чтобы пометить член класса, который будет создан, как защищенный.
  5. Создайте целочисленную переменную с именем value.
  6. Конец тела класса.
  7. Создайте новый класс с именем ChildClass, который наследует ParentClass.
  8. Используйте модификатор защищенного доступа, чтобы пометить член класса, который будет создан как доступный для дочерних классов.
  9. Создайте функцию с именем setId (), которая принимает одно целое значение x.
  10. Присваивание значения переменной x значению переменной.
  11. Конец определения функции setId ().
  12. Создайте функцию с именем displayValue ().
  13. Напечатайте значение переменной с именем value на консоли рядом с другим текстом.
  14. Конец тела функции displayValue ().
  15. Конец тела класса с именем ChildClass.
  16. Вызовите функцию main (). Логика программы должна быть добавлена ​​в тело этой функции.
  17. Создайте экземпляр ChildClass и дайте ему имя c.
  18. Используйте приведенный выше экземпляр класса и функцию setId (), чтобы присвоить значение 21 переменной x.
  19. Используйте приведенный выше экземпляр класса для вызова функции с именем displayValue ().
  20. Программа должна вернуть значение после успешного завершения.
  21. Конец тела функции main ().

Функции-члены класса

Функции помогают нам манипулировать данными. Функции-члены класса можно определить двумя способами:

  • Внутри определения класса
  • Вне определения класса

Если функция должна быть определена вне определения класса, мы должны использовать оператор разрешения области видимости (: :). Это должно сопровождаться именами классов и функций.

Пример 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. Включите файл заголовка iostream в нашу программу, чтобы использовать его функции.
  2. Включите файл заголовка строки в нашу программу, чтобы использовать его функции.
  3. Включите пространство имен std в наш код, чтобы использовать его классы без его вызова.
  4. Создайте класс с именем Guru99.
  5. Используйте модификатор публичного доступа, чтобы пометить членов класса, которые мы собираемся создать, как общедоступных.
  6. Создайте строковую переменную с именем tutorial_name.
  7. Создайте целочисленную переменную с именем id.
  8. Создайте функцию с именем printname (). Эта функция не определена в определении класса.
  9. Создайте функцию с именем print (). Эта функция определена в определении класса. Его тело было добавлено в определение класса.
  10. Напечатайте значение переменной id рядом с другим текстом на консоли. Обратите внимание, что это было добавлено в теле функции printid (). Он будет выполнен только при вызове функции printid ().
  11. Конец тела функции printid ().
  12. Конец тела класса Guru99.
  13. Начало определения функции printname ().
  14. Напечатайте значение переменной tutorial_name на консоли вместе с другим текстом. Обратите внимание, что это было добавлено в теле функции printname (). Он будет выполнен только при вызове функции printname ().
  15. Конец определения функции printname ().
  16. Вызовите функцию main (). Логика программы должна быть добавлена ​​в тело этой функции.
  17. Создайте экземпляр класса Guru99 и дайте ему имя guru99.
  18. Используйте приведенный выше экземпляр, чтобы присвоить значение C ++ переменной tutorial_name.
  19. Используйте экземпляр guru99, чтобы присвоить переменной id значение 1001.
  20. Используйте экземпляр guru99 для вызова функции printname ().
  21. Вызовите команду end (end line), чтобы напечатать новую пустую строку на консоли.
  22. Используйте экземпляр guru99 для вызова функции printid ().
  23. Программа должна вернуть значение после успешного завершения.
  24. Конец тела функции main ().

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

Что такое конструкторы?

Конструкции - это специальные функции, которые инициализируют объекты. Компиляторы C ++ вызывают конструктор при создании объекта. Конструкторы помогают присваивать значения членам класса. Конечно, это происходит после того, как им было выделено место в памяти.

Что такое деструкторы?

С другой стороны, деструкторы помогают уничтожать объекты класса.

Имя конструктора должно быть похоже на имя класса. Конструкторы не имеют возвращаемого типа.

Конструктор может быть определен внутри или вне тела класса. Если он определен вне тела класса, он должен быть определен с помощью имени класса и оператора разрешения области видимости (: :).

Пример 3:

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

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включите файл заголовка iostream в код, чтобы использовать его функции.
  2. Включите пространство имен std в наш код, чтобы использовать его классы без его вызова.
  3. Создайте класс с именем ClassA.
  4. Используйте модификатор публичного доступа, чтобы пометить члена, которого мы собираемся создать, как общедоступного.
  5. Создайте конструктор для класса.
  6. Текст для печати на консоли при вызове конструктора. Endl - это ключевое слово C ++, которое означает конец строки. Он перемещает курсор мыши на следующую строку.
  7. Конец тела конструктора класса.
  8. Создайте деструктор для класса.
  9. Текст для печати на консоли при вызове деструктора. Endl - это ключевое слово C ++, которое означает конец строки. Он перемещает курсор мыши на следующую строку.
  10. Конец тела деструктора.
  11. Конец тела класса.
  12. Вызовите функцию main (). Логика программы должна быть добавлена ​​в тело этой функции.
  13. Создайте объект класса и дайте ему имя a. Конструктор будет вызван.
  14. Создайте целочисленную переменную с именем p и присвойте ей значение 1.
  15. Создайте блок оператора if, используя переменную p.
  16. Создайте объект класса и дайте ему имя b. Деструктор будет вызван.
  17. Конец тела оператора if.
  18. Конец тела функции main ().

Резюме:

  • C ++ объектно-ориентирован.
  • Классы образуют основные функции C ++, которые делают его объектно-ориентированным.
  • Класс C ++ объединяет данные и методы для управления данными в один.
  • Класс - это план объекта.
  • Классы определяют форму объекта.
  • Данные и методы, содержащиеся в классе, называются членами класса.
  • Чтобы получить доступ к членам класса, вы должны использовать экземпляр класса.
  • Чтобы создать класс, мы используем ключевое слово class.
  • Функции-члены класса могут быть определены внутри или вне класса.