有没有办法阻止某人更改继承的受保护成员的访问级别?有人可以在派生类中使用using
声明并将继承的受保护成员的访问级别提高到公共。
现在的问题是如何防止这种情况发生?
例子:
#include <iostream>
using namespace std;
class A {
protected:
int i(){};
};
class B : public A {
public:
using A::i;
};
int main() {
B b;
b.i();
return 0;
}
如何预防
#include <iostream>
using namespace std;
class A {
private:
void i(int) {};
protected:
int i(){};
};
class B : public A {
public:
using A::i;
};
int main() {
B b;
b.i();
return 0;
}