使用using重新定义访问权限
(using只适用于继承,而不适用于包含)
class student : private std::string,private std::valarray<double>
{...
public:
using std::valarray<double>::min;
using std::valarray<double>::max;
...
};
上述using声明使得valarray<double>::min()和valarray<double>::mam()可用,就像它们是student的共有方法一样。
将函数调用包装在另一个函数调用中,即使用一个using声明(就像名称空间那样)来指出派生类可以使用特定的基类成员,即使采用的是私有派生。
using声明只使用成员名——没有圆括号、函数特征标和返回类型。
例如,为使student类可以使用valarray的operator[]方法,只需在student类声明的公有部分包含下面的using声明:
using student::valarray<double>::operator[];
这将使两个版本(const 和 非const)都可用。