Witam,
mam taki problem, dwie klasy:
class klasa1
{
protected:
int x;
public:
virtual ~klasa1()
{
}
};
class klasa2 : protected klasa1
{
public:
klasa2(void)
{
}
~klasa2(void)
{
}
};
Następnie tworzę obiekt klasy: klasa2 i przypisuję go do wskaźnika klasy: klasa1 (niejawna konwersja):
klasa1 *obiekt = new klasa2();
Oczywiście kompilator protestuje.
A ja chcę, aby właściwość x z klasy: klasa1 była odziedziczona jako protected.
Jeśli mam w klasie bazowej więcej takich właściwości, to za każdym razem w klasie pochodnej muszę oznajmiać, że mają mieć one dostęp protected za pomocą operatora zakresu, zmieniając tym samym dziedziczenie na public?:
class klasa2 : public klasa1
{
protected:
klasa1::x;
public:
klasa2(void)
{
}
~klasa2(void)
{
}
};
Nie da się tego inaczej zrobić?
Pozdr. Thx
EDIT:
Aaaa... Przecież skoro w klasie podstawowej x jest protected, to w pochodnej też będzie protected mimo dziedziczenia publicznego...
Do zamknięcia ;) (no chyba, że coś jeszcze przeoczyłem?)
EDIT2:
Dziękować [soczek]