使用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)都可用。
本文详细介绍了C++中using声明的使用方法,特别是在类继承中重新定义访问权限的应用。通过具体的例子展示了如何让派生类能够使用基类的特定成员,即使是在私有继承的情况下。

3万+

被折叠的 条评论
为什么被折叠?



