Классы и объекты C ++

В этом руководстве мы узнаем об объектах и ​​классах и о том, как их использовать в C ++, с помощью примеров.

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

Предположим, нам нужно сохранить длину, ширину и высоту прямоугольной комнаты и вычислить ее площадь и объем.

Чтобы справиться с этой задачей, мы можем создать три переменные, например длину, ширину и высоту, а также функции calculateArea()и calculateVolume().

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

Класс C ++

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

Создать класс

Класс определяется в C ++ с использованием ключевого слова, classза которым следует имя класса.

Тело класса определяется внутри фигурных скобок и заканчивается точкой с запятой в конце.

 class className ( // some data // some functions );

Например,

 class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );

Здесь мы определили класс с именем Room.

Переменные length, width и height, объявленные внутри класса, называются членами данных . И функции calculateArea()и calculateVolume()известны как функции-члены класса.

Объекты C ++

Когда класс определен, определяется только спецификация для объекта; память или хранилище не выделяются.

Чтобы использовать данные и функции доступа, определенные в классе, нам нужно создать объекты.

Синтаксис для определения объекта в C ++

 className objectVariableName;

Мы можем создавать объекты Roomкласса (определенные в приведенном выше примере) следующим образом:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Здесь создаются два объекта Roomкласса room1 и room2 sampleFunction(). Аналогичным образом создаются объекты room3 и room4 main().

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

Кроме того, мы можем создать столько объектов, сколько захотим, из одного класса.

Члены данных доступа C ++ и функции-члены

Мы можем получить доступ к элементам данных и функциям-членам класса с помощью оператора .(точка). Например,

 room2.calculateArea();

Это вызовет calculateArea()функцию внутри Roomкласса для объекта room2.

Точно так же к элементам данных можно обращаться как:

 room1.length = 5.5;

В этом случае он инициализирует переменную длины room1 как 5.5.

Пример 1: объект и класс в программировании на C ++

 // Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Вывод

 Площадь помещения = 1309 Объем помещения = 25132,8

В этой программе мы использовали Roomкласс и его объект room1 для вычисления площади и объема комнаты.

В main(), мы присвоили значения длины, ширины и высоты с помощью кода:

 room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

Затем мы вызвали функции calculateArea()и calculateVolume()для выполнения необходимых вычислений.

Обратите внимание на использование ключевого слова publicв программе. Это означает, что участники являются общедоступными и могут быть доступны из любой точки программы.

В соответствии с нашими потребностями мы также можем создавать частных членов, используя privateключевое слово. Доступ к закрытым членам класса возможен только изнутри класса. Например,

 class Test ( private:
  int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

С другой стороны, b и function2()доступны из любой точки программы.

Чтобы узнать больше об открытых и закрытых ключевых словах, посетите наш учебник по модификаторам доступа к классам C ++.

Пример 2: Использование общедоступного и частного в классе C ++

 // Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Вывод

 Площадь помещения = 1309 Объем помещения = 25132,8

Приведенный выше пример почти идентичен первому примеру, за исключением того, что переменные класса теперь частные.

Поскольку переменные теперь частные, мы не можем получить к ним доступ напрямую из main(). Следовательно, использование следующего кода было бы недопустимым:

 // invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

Вместо этого мы используем публичную функцию getData()для инициализации приватных переменных с помощью параметров функции double len, double brthи double hgt.

Чтобы узнать больше об объектах и ​​классах, посетите эти темы:

  • Конструкторы C ++
  • Как передать и вернуть объект из функции?

Интересные статьи...