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

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

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

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

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

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

Чтобы справиться с этой задачей, мы можем создать три переменные, скажем, length , ширина и высота вместе с функциями 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 .

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

<час>

Объекты C++

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

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

<час>

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

className objectVariableName;

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

// sample function
void sampleFunction() {
    // create objects
    Room room1, room2;
}

int main(){
    // create objects 
    Room room3, room4;
}

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

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

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

<час>

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

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

room2.calculateArea();

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

Точно так же к элементам данных можно получить доступ как:

room1.length = 5.5;

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

<час>

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

// Program to illustrate the working of
// objects and class in C++ Programming

#include <iostream>
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;
}

Вывод

Area of Room =  1309
Volume of Room =  25132.8

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

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

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() { }
}

Вот, а и function1() являются частными. Таким образом, к ним нельзя получить доступ извне класса.

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

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

<час>

Пример 2. Использование public и private в классе C++

// Program to illustrate the working of
// public and private in C++ Class

#include <iostream>
using namespace std;

class Room {

   private:
    double length;
    double breadth;
    double height;

   public:

    // function to initialize private variables
    void initData(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.initData(42.5, 30.8, 19.2);

    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

Вывод

Area of Room =  1309
Volume of Room =  25132.8

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

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

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

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

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


Язык C

  1. Класс и объект С#
  2. Абстрактный класс и метод С#
  3. Частичный класс C# и частичный метод
  4. Запечатанный класс и метод С#
  5. Дружественные функции C++ и дружественные классы
  6. Шаблоны классов С++
  7. Java-класс и объекты
  8. Структуры и классы в C ++
  9. Разница между структурой и классом:объяснение на примере C++
  10. Классы хранения в C++