Posts

Showing posts with the label nombre

C++: Herencia y miembros públicos con mismo nombre

Versión en inglés / English version Consideren este ejemplo: #include <iostream> #include <string> using namespace std; class Abuelo{ public: Abuelo() : m_AtributoJodido("Abuelo") {} virtual ~Abuelo(){} string m_AtributoJodido; }; class Hijo: public Abuelo{ public: Hijo() : m_AtributoJodido("Hijo") {} virtual ~Hijo(){} string m_AtributoJodido; }; class Nieto: public Hijo{ public: Nieto(){} virtual ~Nieto(){} }; int main(){ Nieto n; cout << "Nieto, sin desambiguar: " << n.m_AtributoJodido << endl; cout << "Nieto, desambiguado a Hijo: " << n.Hijo::m_AtributoJodido << endl; cout << "Nieto, desambiguado a Abuelo: " << n.Abuelo::m_AtributoJodido << endl; return 0; } Ignoremos momentáneamente el hecho de que hay atributos públicos (se viola el encapsulamiento). Supongamos, a efectos p...