że mam następujące klasy:Czy mogę alias członka klasy bazowej w klasie pochodnej?
template <class T>
class Base {
protected:
T theT;
// ...
};
class Derived : protected Base <int>, protected Base <float> {
protected:
// ...
using theInt = Base<int>::theT; // How do I accomplish this??
using theFloat = Base<float>::theT; // How do I accomplish this??
};
W mojej klasie pochodnej, chciałbym odnieść się do Base::theT
stosując bardziej intuicyjne nazwy, która ma większy sens w klasie pochodnej. Używam GCC 4.7, który ma całkiem dobry zasięg funkcji C++ 11. Czy istnieje sposób użycia oświadczenia using
do realizacji tego rodzaju próbowałem w moim przykładzie powyżej? Wiem, że w C++ 11 słowo kluczowe using
może być używane do aliasów typów, jak również np. zabrać chronionych członków klasy podstawowej do publicznego zasięgu. Czy istnieje podobny mechanizm aliasingu członka?
Myślę, że potrzebujesz referencji lub raczej funkcji, która nie zajmie miejsca w klasie pochodnej. : | – Xeo
Dzięki, referencja zadziałała. –