我编写了一个具有受保护继承的虚函数
#include<iostream>
using namespace std;
class D{
private:
int a;
protected:
int b;
public:
D(){a=b=c=0;}
virtual void f(){
a=2;
cout <<"D::f"<<a<<endl;
}
void g(){cout<<"D::g"<<a<<endl;}
int c;
};
class E:protected D{
private:
int a,b,c;
public:
E(){a=b=c;}
void f(){
a=3;
cout<<"E::f"<<a<<endl;
}
void g(){cout<<"E::g"<<a<<endl;}
};
int main(){
D *d = new E;
d->f();
d->g();
return 0;
}
但如果我使用它,它会变成无法访问的基地。
如果我将其更改为 public inherience ,它可以运行。
我想知道为什么我不能使用 D *d = new E; 具有私有和受保护的继承?
提前谢谢。