sagen, dass ich die folgenden Klassen:Kann ich einem Mitglied einer Basisklasse in einer abgeleiteten Klasse einen Alias zuweisen?
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??
};
In meiner abgeleiteten Klasse möchte ich Base::theT
mit einem intuitiveren Namen hinweisen, dass mehr Sinn in der abgeleiteten Klasse. Ich benutze GCC 4.7, das eine ziemlich gute Abdeckung von C++ 11 Funktionen bietet. Gibt es eine Möglichkeit, eine using
-Anweisung zu verwenden, um diese Art von wie ich in meinem obigen Beispiel versucht, zu erreichen? Ich weiß, dass in C++ 11 das Schlüsselwort using
verwendet werden kann, um Alias-Typen sowie z. Bringen Sie geschützte Basisklassenmitglieder in den öffentlichen Bereich. Gibt es einen ähnlichen Mechanismus für das Aliasing eines Mitglieds?
Ich denke, Sie brauchen entweder Referenzen oder wahrscheinlich eher eine Funktion, die nicht Platz in der abgeleiteten Klasse belegen wird. : | – Xeo
Danke, Referenz funktioniert. –