Estoy usando herencia privada en un proyecto, en el sentido "implementado en términos de". La clase base define operator [], y esta es la funcionalidad que quiero usar. Por lo tanto, tengoHerencia privada usando directivas, sobrecargas?
class A : private B {
using B::operator[];
// ...
};
Sin embargo, ¿cómo puedo controlar qué versión del operador [] obtengo? De hecho, necesito más de una, tanto las versiones const
y no const
. ¿Se puede lograr esto?
En este caso, podría usar la composición para darle el resultado deseado en lugar de la herencia privada. – James
Sí, lo sé ... lo cambié a herencia privada para reducir la cantidad de código de reenvío. Entonces no es posible? ¿Cómo se elige la función de forma adecuada? – carlpett
Su código será mucho más fácil de escribir y mantener si utiliza la composición en lugar de la herencia privada aquí. La regla empírica es no utilizar las características extravagantes de C++ cuando no son absolutamente necesarias (por lo que ha dicho hasta ahora, la herencia privada no es necesaria en este caso). –