Clase y objeto C ++ con ejemplo

Tabla de contenido:

Anonim

¿Qué es una clase?

Una clase de C ++ combina datos y métodos para manipular los datos en uno. Las clases también determinan las formas de los objetos. Los datos y métodos contenidos en una clase se conocen como miembros de clase. Una clase es un tipo de datos definido por el usuario. Para acceder a los miembros de la clase, usamos una instancia de la clase. Puede ver una clase como un modelo para un objeto.

Una clase será un prototipo de casa. Muestra la ubicación y los tamaños de puertas, ventanas, pisos, etc. A partir de estas descripciones, podemos construir una casa. La casa se convierte en objeto. Es posible crear muchas casas a partir del prototipo. Además, es posible crear muchos objetos a partir de una clase.

En la figura anterior, tenemos un prototipo de casa única. A partir de este prototipo, hemos creado dos casas con características diferentes.

En este tutorial, aprenderá:

  • ¿Qué es una clase?
  • Ejemplo de clase
  • Palabras clave públicas y privadas
  • Definición de objeto
  • Acceso a miembros de datos
  • Funciones de los miembros de la clase
  • Constructores y Destructores

Declaración de clase

En C +, una clase se define mediante la palabra clave class. Esto debe ir seguido del nombre de la clase. Luego, el cuerpo de la clase se agrega entre llaves {}.

Sintaxis:

class class-name{// data// functions};
  • El nombre de la clase es el nombre que se asignará a la clase.
  • Los datos son los datos de la clase, normalmente declarados como variables.
  • Las funciones son las funciones de clase.

Palabras clave públicas y privadas

Debes haber encontrado estas dos palabras clave. Son modificadores de acceso.

  • Privado:

Cuando la palabra clave privada se usa para definir una función o clase, se vuelve privada. Estos solo son accesibles desde dentro de la clase.

  • Público:

La palabra clave pública, por otro lado, hace públicos los datos / funciones. Estos son accesibles desde fuera de la clase.

Definición de objeto

Los objetos se crean a partir de clases. Los objetos de clase se declaran de forma similar a como se declaran las variables. El nombre de la clase debe comenzar seguido del nombre del objeto. El objeto del tipo de clase.

Sintaxis:

class-name object-name;
  • El nombre de clase es el nombre de la clase a partir de la cual se creará un objeto.
  • El nombre del objeto es el nombre que se asignará al nuevo objeto.

Este proceso de creación de un objeto a partir de una clase se conoce como instanciación.

Acceso a miembros de datos

Para acceder a los miembros públicos de una clase, usamos el operador de punto (.). Estos son miembros marcados con el modificador de acceso público.

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

Producción:

Aquí hay una captura de pantalla del código:

Explicación del código:

  1. Incluya el archivo de encabezado de iostream en nuestro código para usar sus funciones.
  2. Incluyendo el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
  3. Declare una clase llamada Phone.
  4. Usar el modificador de acceso público para marcar las variables que estamos a punto de crear como accesibles al público.
  5. Declare el costo variable de un tipo de datos doble.
  6. Declare una variable entera denominada slots.
  7. Fin del cuerpo de la clase.
  8. Llamando a la función main (). La lógica del programa debe agregarse dentro de su cuerpo.
  9. Cree un objeto llamado Y6 de tipo Teléfono. Esto se llama instanciación.
  10. Cree un objeto llamado Y7 de tipo Teléfono. Esto se llama instanciación.
  11. Acceda al costo variable / miembro de la clase Teléfono usando el objeto Y6. El valor se establece en 100,0. El costo de Y6 ahora está establecido en 100.0.
  12. Acceda a las ranuras de variable / miembro de la clase Phone usando el objeto Y6. El valor se establece en 2. Las ranuras para Y6 ahora se establecen en 2.
  13. Acceda al costo variable / miembro de la clase Teléfono usando el objeto Y7. El valor se establece en 200.0. El costo de Y7 ahora está establecido en 200.0.
  14. Acceda a las ranuras de variable / miembro de la clase Phone usando el objeto Y7. El valor se establece en 2. Las ranuras para Y7 ahora se establecen en 2.
  15. Imprima el costo de Y6 en la consola junto con otro texto.
  16. Imprima el costo de Y7 en la consola junto con otro texto.
  17. Imprima el número de espacios para Y6 junto con otro texto.
  18. Imprima el número de espacios para Y7 junto con otro texto.
  19. El programa debe devolver un valor una vez completado con éxito.
  20. Fin del cuerpo de la función main ().

¿Qué es una clase privada?

Solo se puede acceder a los miembros de la clase marcados como privados mediante funciones definidas dentro de la clase. Cualquier objeto o función definida fuera de la clase no puede acceder a dichos miembros directamente. A un miembro de la clase privada solo se accede mediante funciones de miembro y amigo.

¿Qué es una clase protegida?

Los miembros de la clase marcados como protegidos tienen una ventaja sobre los marcados como privados. Se puede acceder a ellos mediante funciones dentro de la clase de su definición. Además, se puede acceder a ellos desde clases derivadas.

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

Producción:

Aquí hay una captura de pantalla del código:

Explicación del código:

  1. Incluya el archivo de encabezado de iostream en nuestro código para usar sus funciones.
  2. Incluya el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
  3. Cree una clase llamada ClassA.
  4. Utilice el modificador de acceso público para marcar el miembro de la clase que se creará como de acceso público.
  5. Cree la función llamada set_a () que toma un valor entero val.
  6. Cree una función llamada get_a ().
  7. Utilice el modificador de acceso privado para marcar el miembro de la clase que se creará como de acceso privado.
  8. Declare una variable entera llamada a.
  9. Fin del cuerpo de la clase.
  10. Utilice el nombre de la clase y el operador de resolución de alcance para acceder a la función get_a (). Queremos definir qué hace la función cuando se invoca.
  11. La función get_a () debería devolver el valor de la variable a cuando se invoca.
  12. Fin de la definición de la función get_a ().
  13. Utilice el nombre de la clase y el operador de resolución de alcance para acceder a la función set_a (). Queremos definir qué hace la función cuando se invoca.
  14. Asignar el valor de la variable val a la variable a.
  15. Fin de la definición de la función set_a ().
  16. Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  17. Cree una instancia de ClassA y asígnele el nombre a.
  18. Utilice la instancia de clase anterior y la función set_a () para asignar un valor de 20 a la variable a.
  19. Imprimir texto junto con el valor de la variable a en la consola. El valor de la variable a se obtiene llamando a la función get_a ().
  20. El programa debe devolver valor una vez completado con éxito.
  21. Fin del cuerpo de la función main ().

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

Producción:

Aquí hay una captura de pantalla del código:

Explicación del código:

  1. Incluya el archivo de encabezado de iostream en nuestro código para usar sus funciones.
  2. Incluya el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
  3. Cree una clase llamada ParentClass.
  4. Utilice el modificador de acceso protegido para marcar el miembro de la clase que se creará como protegido.
  5. Cree una variable entera denominada valor.
  6. Fin del cuerpo de la clase.
  7. Cree una nueva clase denominada ChildClass que herede ParentClass.
  8. Utilice el modificador de acceso protegido para marcar el miembro de la clase que se creará como accesible para las clases secundarias.
  9. Cree la función llamada setId () que toma un valor entero x.
  10. Asignar el valor de la variable x al valor de la variable.
  11. Fin de la definición de la función setId ().
  12. Cree una función llamada displayValue ().
  13. Imprima el valor de la variable denominada valor en la consola junto con otro texto.
  14. Fin del cuerpo de la función displayValue ().
  15. Fin del cuerpo de la clase denominada ChildClass.
  16. Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  17. Cree una instancia de ChildClass y asígnele el nombre c.
  18. Utilice la instancia de clase anterior y la función setId () para asignar un valor de 21 a la variable x.
  19. Utilice la instancia de la clase anterior para llamar a la función denominada displayValue ().
  20. El programa debe devolver valor una vez completado con éxito.
  21. Fin del cuerpo de la función main ().

Funciones de los miembros de la clase

Las funciones nos ayudan a manipular datos. Las funciones de los miembros de la clase se pueden definir de dos formas:

  • Dentro de la definición de clase
  • Fuera de la definición de clase

Si una función se va a definir fuera de una definición de clase, debemos usar el operador de resolución de alcance (: :). Esto debe ir acompañado de los nombres de la clase y la función.

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

Producción:

Aquí hay una captura de pantalla del código:

Explicación del código:

  1. Incluya el archivo de encabezado iostream en nuestro programa para usar sus funciones.
  2. Incluya el archivo de encabezado de cadena en nuestro programa para usar sus funciones.
  3. Incluya el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
  4. Crea una clase llamada Guru99.
  5. Utilice el modificador de acceso público para marcar los miembros de la clase que estamos a punto de crear como accesibles al público.
  6. Cree una variable de cadena llamada nombre_tutorial.
  7. Cree una variable entera llamada id.
  8. Cree una función llamada printname (). Esta función no está definida dentro de la definición de clase.
  9. Cree una función llamada Printed (). Esta función se define dentro de la definición de clase. Su cuerpo se ha agregado dentro de la definición de clase.
  10. Imprima el valor de la variable id junto con otro texto en la consola. Tenga en cuenta que esto se ha agregado dentro del cuerpo de la función printid (). Solo se ejecutará cuando se llame a la función printid ().
  11. Fin del cuerpo de la función printid ().
  12. Fin del cuerpo de la clase Guru99.
  13. El inicio de la definición de la función printname ().
  14. Imprima el valor de la variable tutorial_name en la consola junto con otro texto. Tenga en cuenta que esto se ha agregado dentro del cuerpo de la función printname (). Solo se ejecutará cuando se llame a la función printname ().
  15. Fin de la definición de la función printname ().
  16. Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  17. Cree una instancia de la clase Guru99 y asígnele el nombre guru99.
  18. Utilice la instancia anterior para asignar un valor de C ++ a la variable tutorial_name.
  19. Utilice la instancia de guru99 para asignar un valor de 1001 a la variable id.
  20. Utilice la instancia guru99 para llamar a la función printname ().
  21. Llame al comando end (línea final) para imprimir una nueva línea en blanco en la consola.
  22. Utilice la instancia guru99 para llamar a la función printid ().
  23. El programa debe devolver valor una vez completado con éxito.
  24. Fin del cuerpo de la función main ().

Constructores y Destructores

¿Qué son los constructores?

Las construcciones son funciones especiales que inicializan objetos. Los compiladores de C ++ llaman a un constructor cuando crean un objeto. Los constructores ayudan a asignar valores a los miembros de la clase. Por supuesto, esto es después de que se les haya asignado algo de espacio de memoria.

¿Qué son los destructores?

Los destructores, por otro lado, ayudan a destruir los objetos de la clase.

El nombre del constructor debe ser similar al nombre de la clase. Los constructores no tienen un tipo de retorno.

El constructor se puede definir dentro o fuera del cuerpo de la clase. Si se define fuera del cuerpo de la clase, debe definirse con el nombre de la clase y el operador de resolución de alcance (: :).

Ejemplo 3:

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

Producción:

Aquí hay una captura de pantalla del código:

Explicación del código:

  1. Incluya el archivo de encabezado de iostream en el código para usar sus funciones.
  2. Incluya el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
  3. Cree una clase llamada ClassA.
  4. Utilice el modificador de acceso público para marcar el miembro que estamos a punto de crear como de acceso público.
  5. Crea un constructor para la clase.
  6. Texto para imprimir en la consola cuando se llama al constructor. Endl es una palabra clave de C ++, que significa línea final. Mueve el cursor del mouse a la siguiente línea.
  7. Fin del cuerpo del constructor de la clase.
  8. Crea un destructor para la clase.
  9. Texto para imprimir en la consola cuando se llama al destructor. Endl es una palabra clave de C ++, que significa línea final. Mueve el cursor del mouse a la siguiente línea.
  10. Fin del cuerpo del destructor.
  11. Fin del cuerpo de la clase.
  12. Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  13. Cree un objeto de clase y asígnele el nombre a. Se llamará al constructor.
  14. Cree una variable entera llamada p y asígnele un valor de 1.
  15. Cree un bloque de instrucciones if usando la variable p.
  16. Cree un objeto de clase y asígnele el nombre b. Se llamará al destructor.
  17. Fin del cuerpo de la sentencia if.
  18. Fin del cuerpo de la función main ().

Resumen:

  • C ++ está orientado a objetos.
  • Las clases forman las características principales de C ++ que lo hacen orientado a objetos.
  • Una clase de C ++ combina datos y métodos para manipular los datos en uno.
  • Una clase es un plano para un objeto.
  • Las clases determinan la forma de un objeto.
  • Los datos y métodos contenidos en una clase se conocen como miembros de clase.
  • Para acceder a los miembros de la clase, debe usar una instancia de la clase.
  • Para crear una clase, usamos la palabra clave class.
  • Las funciones de los miembros de la clase se pueden definir dentro o fuera de una clase.