Ejemplo 01:
Comencemos nuestro primer ejemplo para elaborar cómo obtenemos el error "No se puede llamar a la función del miembro sin objeto" en el código C ++. Entonces, lo primero que debemos hacer es crear un archivo C ++. Este archivo se puede crear con algún editor de texto dentro del explorador de archivos o dentro del shell. Puede intentar abrirlo con el editor VIM, el editor de texto o algún otro editor como GNU Nano Editor. Entonces, hemos estado abriendo directamente este archivo recién creado en GNU Nano Editor utilizando el comando "nano". Ahora, el archivo recién creado vacío se lanza en el editor nano y está listo para ser utilizado.
Hemos estado comenzando nuestro código con la adición de algunos archivos de encabezado, yo.mi., "Iostream". Puede usar el espacio de nombres "STD" en el código mientras lo declara antes de la función principal. De lo contrario, debe usar la palabra clave "STD" con cada cláusula COUT y CIN en el programa. Entonces, lo hemos inicializado antes del método principal usando la palabra clave "usando". Hemos creado una clase simple llamada "A" en el código. Esta clase contiene una sola función definida por el usuario llamada "show ()". La función contiene la declaración de una variable de tipo de personaje llamada "A". La primera declaración de cout de esta función solicita que un usuario agregue un personaje. La cláusula "CIN" permite a un usuario agregar ese carácter en el shell y guardarlo en la variable "A". La última declaración de cout se ha utilizado aquí para mostrar el carácter en el shell que el usuario tiene entrada.
Ahora la clase ha terminado y hemos comenzado el método principal. Es hora de llamar a la función para ejecutarla sin usar nada más. Entonces, simplemente hemos usado el nombre de clase "A" con "::" para llamar a la función "show ()" en el método principal. El método principal está cerrado aquí. Estamos listos para guardar este código con Ctrl+S, ya que ya está completo.
Vuelve al terminal usando "Ctrl+X. Ahora, ya es hora de compilar el código con el compilador C ++ incorporado de Ubuntu 20.04. Por lo tanto, hemos utilizado la instrucción del compilador "G ++" aquí para simplemente compilar el archivo de código y ver si está libre de errores o no. En la compilación, muestra el error. Esto significa que no podemos simplemente ejecutar o llamar a la función show () de la clase "a" sin crear un objeto de esta clase.
Entonces, necesitamos actualizar el archivo de código una vez más. Utilice el editor nano una vez más y resuelva este error. Entonces el archivo anterior se abre de nuevo. Solo necesitamos cambiar la función principal () para eludir este error hasta ahora. Entonces, hemos creado un objeto "obj" de la clase "a". Ahora, este objeto "obj" se ha utilizado aquí para llamar a la función show () de la clase "a" usando el "punto" entre el nombre del objeto y el nombre de la función. Guardar el código para reflejar los cambios en la ejecución utilizando la tecla de acceso directo simple, i.mi., "Ctrl+S". El código actualizado se ha mostrado en la imagen a continuación. Volvamos al terminal para compilar el código actualizado usando "Ctrl+X".
Usó la instrucción del compilador "G ++" para el propósito de la compilación de código. No tenemos ningún error esta vez. En la ejecución del código, tenemos el resultado que se muestra a continuación. Pidió ingresar al personaje, agregando "A". A cambio, mostró el personaje en el caparazón. Usando el objeto para llamar a la función show ().
Ejemplo 02:
Tengamos otro ejemplo de recibir el mismo error y resolverlo después. Entonces, abrimos el error del archivo.CC y creó el código a continuación. Este código se ha iniciado desde el archivo de encabezado IOSTream, el espacio de nombres STD y terminó con el método principal. Nuestro programa contiene dos clases, A y B. A es la clase principal, y B es la clase infantil de un heredamiento de sus propiedades aquí. La clase parental A contiene una función "print ()" que tiene una sola declaración que muestra que esta es una función de clase principal. La clase infantil contiene una función "show ()" con una instrucción Cout que muestra que el método de la clase infantil ha sido ejecutado. La función Main () contiene un método simple "::" para llamar a ambos métodos utilizando sus respectivas clases, yo.mi., "A y B". Ejecutemos este código para ver cómo funciona.
Cuando compilamos el código, recibimos el error de excepción diciendo "No se puede llamar a la función miembro sin objeto" para ambas llamadas de función. Esto se debe a que no creamos los objetos para llamar a las funciones de las clases respectivas y lo hicimos directamente.
Abra el archivo una vez más usando el "Editor Nano". No hay necesidad de cambiar todo el código; Solo el método principal () requiere una pequeña modificación. Como puede echar un vistazo a que hemos creado un obj1 obj1 de la clase principal "a" y lo usamos para hacer una llamada de función para imprimir () método. Luego, creamos un objeto "OBJ2" de Child Class B e hicimos una llamada de función a la función "show ()" aquí para ejecutarlo. También podemos evitar hacer el objeto de clase principal "obj1" y aún llamar a su función utilizando el objeto de clase infantil "obj2". Tanto las funciones en las clases de padres e hijos tienen diferentes nombres, por lo que no causará ningún error. Guardemos el archivo de código con Ctrl+S y volvamos al terminal para ver si el error se resuelve o no.
Después de la compilación del código actualizado, podemos echar un vistazo a que el error "no puede llamar a la función del miembro sin su objeto" se ha eliminado finalmente, y el código está listo para ser ejecutado. Las funciones de clase padre e hijos se ejecutaron como se muestra al ejecutar el código.
Conclusión:
Este artículo contiene una demostración simple de crear un error "no puede llamar a la función miembro sin el objeto" en el programa C ++. Hemos utilizado el concepto de clases aquí para hacerlo posible. Luego, también hemos demostrado la solución para resolver este error dentro de los ejemplos. Tenemos la esperanza de que este artículo sea útil para todos los usuarios ingenuos de C ++.