Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

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

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

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

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

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

Из этого руководства вы узнаете:

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

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

Синтаксис:

class class-name
   {
   // data
   // functions
   };

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

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

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

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

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

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

Синтаксис:

class-name object-name;

Этот процесс создания объекта из класса известен как создание экземпляра.

Доступ к членам данных

Чтобы получить доступ к общедоступным членам класса, мы используем оператор точки (.). Это члены, помеченные модификатором общего доступа.

Пример 1:

#include <iostream>
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. Использование модификатора доступа public для пометки переменных, которые мы собираемся создать, как общедоступных.
  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 <iostream>
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. Используйте модификатор доступа public, чтобы пометить создаваемый член класса как общедоступный.
  5. Создайте функцию с именем set_a(), которая принимает одно целое значение val.
  6. Создайте функцию с именем get_a().
  7. Используйте модификатор приватного доступа, чтобы пометить создаваемый член класса как доступный приватно.
  8. Объявите целочисленную переменную с именем a.
  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 <iostream>
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. Используйте модификатор доступа protected, чтобы пометить создаваемый член класса как доступный для дочерних классов.
  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 <iostream>
#include <string>
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. Используйте модификатор доступа public, чтобы пометить членов класса, которые мы собираемся создать, как общедоступные.
  6. Создайте строковую переменную с именем tutorial_name.
  7. Создайте целочисленную переменную с именем id.
  8. Создайте функцию с именем printname(). Эта функция не определена в определении класса.
  9. Создайте функцию с именем print(). Эта функция определена в определении класса. Его тело добавлено в определение класса.
  10. Выведите значение идентификатора переменной вместе с другим текстом на консоли. Обратите внимание, что это добавлено в тело функции 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, чтобы присвоить идентификатору переменной значение 1001.
  20. Используйте экземпляр guru99 для вызова функции printname() .
  21. Вызовите команду end (конец строки), чтобы напечатать в консоли новую пустую строку.
  22. Используйте экземпляр guru99 для вызова функции printid().
  23. Программа должна возвращать значение после успешного завершения.
  24. Конец тела функции main().

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

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

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

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

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

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

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

Пример 3:

#include <iostream>  
using namespace std;
class ClassA {
public:
	ClassA() {
		cout << "Class constructor called"<<endl;
	}
	~ClassA() {
		cout << "Class destructor called"<<endl;
	}
};

int main() {
	ClassA a;
	int p = 1;
		if (p) {
			ClassA b; 
		}   
}

Вывод:

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

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

  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

  1. Класс и объект С#
  2. Классы и объекты С++
  3. Дружественные функции C++ и дружественные классы
  4. Шаблоны классов С++
  5. Операторы в C++ с примером:что такое, типы и программы
  6. Оператор C++ Switch Case с ПРИМЕРОМ
  7. C++ динамическое выделение массивов с примером
  8. Структура С++ с примером
  9. std::list в C++ с примером
  10. Разница между структурой и классом:объяснение на примере C++