C++中子类重写父类的虚函数能改变其访问权限吗
答案是:可以的!没问题!
试了两个最极端的情况:
1.父类的虚函数(或纯虚函数)是private,子类可以重写成public并且之后可以被外面访问:
#include <iostream>
using namespace std;
class Base {
public:
Base(){}
~Base(){}
private:
virtual void myVirtualFunc() { cout << "Base::myVirtualFunc()" << endl; }
virtual void myPureVirtualFunc() = 0;
};
class Derive : public Base
{
public:
Derive(){}
~Derive(){}
public:
void myVirtualFunc() { cout << "Derive::myVirtualFunc()" << endl; }
void myPureVirtualFunc() { cout << "Derive::myPureVirtualFunc()" << endl; }
};
int main()
{
Derive d;
d.myVirtualFunc();
d.myPureVirtualFunc();
std::cout << "Hello World!\n";
}
运行结果:
2.父类的虚函数(或纯虚函数)是public,子类可以重写成private并且之后就不可被外界访问&#