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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top