Problema visibilidad método privado
Publicado por Juan (3 intervenciones) el 05/10/2019 15:28:30
Hola, buenas. Os comento.
Estoy comenzando a programar en C++. Para ello he comenzado con una simple aplicación que hace uso de una clase que he definido como Contraseña.
Como es habitual, he creado los dos ficheros correspondientes: Contraseña.h y Contraseña.cpp
A crear esta clase me he encontrado con el siguiente problema:
En la sección 'private' del fichero Contraseña.h he implementado la función privada 'esMayusc' que recibe un parámetro de tipo char y devuelve un booleano. Se trata de una función que en principio es para uso privado y no debe hacerse pública.
A su vez, en la sección 'public' de Contraseña.h he declarado una función pública llamada 'esContraseña' que recibe un puntero a carácter y devuelve un booleano.
Por otro lado, en el fichero Contraseña.cpp he realizado la implementación de la función pública 'esContraseña' que hace uso de la función privada 'esMayusc'.
Pues bien, al compilar la clase me da el siguiente error en Contraseña.cpp:
'esMayusc' was not declared in this scope
Entiendo que el error se produce al intentar hacer uso desde una función pública de otra que es privada. Se trata de un error conceptual.
Mi duda es: ¿Es que no puedo utilizar una función privada desde otra pública? ¿Qúe puedo hacer entonces? ¿Cómo poder hacer uso de la función 'esMayusc' desde 'esContraseña'? ¿Se puede solucionar el problema?
Supongo que es un error básico. Espero que me podáis ayudar.
Estoy comenzando a programar en C++. Para ello he comenzado con una simple aplicación que hace uso de una clase que he definido como Contraseña.
Como es habitual, he creado los dos ficheros correspondientes: Contraseña.h y Contraseña.cpp
A crear esta clase me he encontrado con el siguiente problema:
En la sección 'private' del fichero Contraseña.h he implementado la función privada 'esMayusc' que recibe un parámetro de tipo char y devuelve un booleano. Se trata de una función que en principio es para uso privado y no debe hacerse pública.
A su vez, en la sección 'public' de Contraseña.h he declarado una función pública llamada 'esContraseña' que recibe un puntero a carácter y devuelve un booleano.
Por otro lado, en el fichero Contraseña.cpp he realizado la implementación de la función pública 'esContraseña' que hace uso de la función privada 'esMayusc'.
Pues bien, al compilar la clase me da el siguiente error en Contraseña.cpp:
'esMayusc' was not declared in this scope
Entiendo que el error se produce al intentar hacer uso desde una función pública de otra que es privada. Se trata de un error conceptual.
Mi duda es: ¿Es que no puedo utilizar una función privada desde otra pública? ¿Qúe puedo hacer entonces? ¿Cómo poder hacer uso de la función 'esMayusc' desde 'esContraseña'? ¿Se puede solucionar el problema?
Supongo que es un error básico. Espero que me podáis ayudar.
Valora esta pregunta
0