Dire che ho le seguenti classi:Posso fare l'alias di un membro di una classe base in una classe derivata?
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??
};
Nella mia classe derivata, vorrei fare riferimento a Base::theT
utilizzando un nome più intuitivo che rende più senso nella classe derivata. Sto usando GCC 4.7, che ha una buona copertura delle funzionalità di C++ 11. C'è un modo di usare una dichiarazione using
per realizzare questo tipo di come ho provato nel mio esempio sopra? So che in C++ 11, la parola chiave using
può essere usata per i tipi di alias così come per es. portare i membri della classe base protetti nella portata pubblica. Esiste un meccanismo simile per l'aliasing di un membro?
Penso che sia necessario riferimenti o probabilmente piuttosto una funzione che non occuperà spazio nella classe derivata. : | – Xeo
Grazie, la referenza ha funzionato. –