继承中使用using
“派生类可以恢复继承成员的访问级别,但不能使访问级别比基类中原来指定的更严格或更宽松。”
这句话说的管用吗?
#include <iostream>
using namespace std;
class B
{
protected:
int i;
};
class D: private B
{
public:
using B::i;//这里不出错
};
int main()
{
D d;
d.i;
return 0;
}
[解决办法]
这句话从哪看来的?
应该是没有理由的。
试想一下:B中把i设置成protected:说明允许派生类去任意使用i
如果派生类不被允许把i重新设置成public的话,那么派生类可以通过一对get/set公共函数一样来达到这个目的,那么这种限制就是毫无意义的。
[解决办法]
学习。。。
[解决办法]
那有没有原文及其上下文和作者的例子
如果是翻译的,有没有英文原文呢?
[解决办法]
有很多翻译不太准确的
[解决办法]
那句话说得有道理, 派生类可以恢复继承成员的访问级别,但不能使访问级别比基类中原来指定的更宽松,估计是这样的 。
顶!!!
[解决办法]
派生类经过全局作用可以改变存取权限
[解决办法]
说实话,不要使用这个功能。
尤其是using+虚函数时,各编译器就晕了。