Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Clases y objetos de C++

Clases y objetos de C++

En este tutorial, aprenderemos sobre objetos y clases y cómo usarlos en C++ con la ayuda de ejemplos.

En tutoriales anteriores, aprendimos sobre funciones y variables. A veces es deseable poner funciones y datos relacionados en un solo lugar para que sea lógico y más fácil trabajar con ellos.

Supongamos que necesitamos almacenar el largo, el ancho y la altura de una habitación rectangular y calcular su área y volumen.

Para manejar esta tarea, podemos crear tres variables, por ejemplo, longitud , amplitud y altura junto con las funciones calculateArea() y calculateVolume() .

Sin embargo, en C++, en lugar de crear variables y funciones separadas, también podemos empaquetar estos datos y funciones relacionados en un solo lugar (al crear objetos ). Este paradigma de programación se conoce como programación orientada a objetos.

Pero antes podemos crear objetos y usarlos en C++, primero debemos aprender sobre clases .


Clase C++

Una clase es un modelo para el objeto.

Podemos pensar en una clase como un boceto (prototipo) de una casa. Contiene todos los detalles sobre los pisos, puertas, ventanas, etc. En base a estas descripciones construimos la casa. La casa es el objeto.

Crear una clase

Una clase se define en C++ usando la palabra clave class seguido del nombre de la clase.

El cuerpo de la clase se define dentro de las llaves y termina con un punto y coma al final.

class className {
   // some data
   // some functions
};

Por ejemplo,

class Room {
    public:
        double length;
        double breadth;
        double height;   

        double calculateArea(){   
            return length * breadth;
        }

        double calculateVolume(){   
            return length * breadth * height;
        }

};

Aquí, definimos una clase llamada Room .

Las variables longitud , amplitud y altura declarados dentro de la clase se conocen como miembros de datos . Y, las funciones calculateArea() y calculateVolume() se conocen como funciones miembro de una clase.


Objetos C++

Cuando se define una clase, solo se define la especificación del objeto; no se asigna memoria ni almacenamiento.

Para usar las funciones de datos y acceso definidas en la clase, necesitamos crear objetos.


Sintaxis para definir objetos en C++

className objectVariableName;

Podemos crear objetos de Room clase (definida en el ejemplo anterior) de la siguiente manera:

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

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

Aquí, dos objetos room1 y sala2 de los Room clase se crean en sampleFunction() . De manera similar, los objetos room3 y sala4 se crean en main() .

Como vemos, podemos crear objetos de una clase en cualquier función del programa. También podemos crear objetos de una clase dentro de la propia clase, o en otras clases.

Además, podemos crear tantos objetos como queramos a partir de una única clase.


Miembros de datos de acceso de C++ y funciones de miembros

Podemos acceder a los miembros de datos y funciones miembro de una clase usando un . (punto) operador. Por ejemplo,

room2.calculateArea();

Esto llamará al calculateArea() función dentro del Room clase para el objeto sala2 .

Del mismo modo, se puede acceder a los miembros de datos como:

room1.length = 5.5;

En este caso, inicializa la longitud variable de sala1 a 5.5 .


Ejemplo 1:Objeto y Clase en Programación 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;
}

Salida

Area of Room =  1309
Volume of Room =  25132.8

En este programa, hemos utilizado el Room clase y su objeto room1 para calcular el área y el volumen de una habitación.

En main() , le asignamos los valores de longitud , amplitud y altura con el código:

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

Luego llamamos a las funciones calculateArea() y calculateVolume() para realizar los cálculos necesarios.

Tenga en cuenta el uso de la palabra clave public en el programa. Esto significa que los miembros son públicos y se puede acceder a ellos desde cualquier lugar del programa.

Según nuestras necesidades, también podemos crear miembros privados usando el private palabra clave. Solo se puede acceder a los miembros privados de una clase desde dentro de la clase. Por ejemplo,

class Test {

private:
    int a;
    void function1() { }

public:
    int b;
    void function2() { }
}

Aquí, a y function1() son privados. Por lo tanto, no se puede acceder a ellos desde fuera de la clase.

Por otro lado, b y function2() son accesibles desde cualquier parte del programa.

Para obtener más información sobre las palabras clave públicas y privadas, visite nuestro tutorial sobre modificadores de acceso a clases de C++.


Ejemplo 2:Uso de public y private en C++ Class

// 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;
}

Salida

Area of Room =  1309
Volume of Room =  25132.8

El ejemplo anterior es casi idéntico al primer ejemplo, excepto que las variables de clase ahora son privadas.

Dado que las variables ahora son privadas, no podemos acceder a ellas directamente desde main() . Por lo tanto, usar el siguiente código no sería válido:

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

En su lugar, usamos la función pública initData() para inicializar las variables privadas a través de los parámetros de función double len , double brth y double hgt .

Para obtener más información sobre objetos y clases, visite estos temas:


Lenguaje C

  1. Clase y objeto de C#
  2. Clase y método abstractos de C#
  3. C# Clase parcial y método parcial
  4. Clase y método sellados de C#
  5. Función amiga de C++ y Clases amigas
  6. Plantillas de clase de C++
  7. Objetos y clases de Java
  8. Estructuras y clases en C ++
  9. Diferencia entre estructura y clase:explicada con el ejemplo de C++
  10. Clases de almacenamiento en C++
  11. C++ Fecha y hora