Acceso a los miembros protegidos de datos de otra clase.
-
26-12-2019 - |
Pregunta
Estoy tratando de implementar un árbol rojo-negro, y he creado nodos que contiene un nodo infantil izquierdo, un nodo secundario derecho y un nodo principal, almacenado como miembros protegidos de datos en mi clase RedBlackNode.En mi función de inserción, necesito acceder a cada miembro de los nodos protegidos como su hijo izquierdo o su padre, usando nodo -> _ izquierda -> _ padre y así sucesivamente.Pero mi compilador se queja de que
bst.h:77:29: error: ‘Node<int, int>* Node<int, int>::_left’ is protected
rbbst.h:160:3: error: within this context
bst.h:77:46: error: ‘Node<int, int>* Node<int, int>::_parent’ is protected
rbbst.h:160:3: error: within this context
¿Cómo puedo superar este problema?
Solución
Mis sugerencias: 1. Recodará el nodo de clase como una estructura; 2. Agregue diversiones de miembros púíticos accesibles que devuelvan la referencia a esos miembros de datos y usted debe Ponga a los datos miembros como privados;
Finalmente, perdona a mi pobre inglés. Es mi primera respuesta en esta web. (● '◡' ●)
Otros consejos
También puede declarar una función específica para tener acceso a los miembros privados de una clase utilizando la palabra clave "amigo".
¿Está subclase la clase principal?Remeber que en la herencia es C ++ Sólo las subclases pueden acceder a los protocolos protegidos.Aclarando eso intenta hacer los métodos públicos.Por favor, muestre las líneas de error y el código para obtener más ayuda.