【发布时间】:2012-12-09 04:44:24
【问题描述】:
假设我有以下课程:
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??
};
在我的派生类中,我想使用更直观的名称来引用Base::theT,这在派生类中更有意义。我使用的是 GCC 4.7,它很好地覆盖了 C++ 11 的特性。有没有办法使用using 语句来完成我在上面的示例中尝试的这种方式?我知道在 C++11 中,using 关键字可用于别名类型以及例如。将受保护的基类成员带入公共范围。有没有类似的机制给成员起别名?
【问题讨论】:
-
我认为您要么需要引用,要么可能需要一个不会占用派生类空间的函数。 :|