C++ 多态性与保护继承问题
我有这个密码C++ 多态性与保护继承问题,c++,oop,pointers,c++11,C++,Oop,Pointers,C++11,我有这个密码 tp=new asp\u table,它不允许我编译说我没有访问权限。 我不明白为什么?我试图创建一个从基类到派生类的指针,但它不允许我这样做。我想知道为什么 类表{ 整数大小; int优先级; 公众: 表(ints=0,intp=0):大小(s),优先级(p){ 虚拟空打印(){} }; 类stud_表:公共表{ 字符*名称; int gr; 公众: void print(){cout错误消息说明了一切: 无法将“asp\U表”强制转换为其受保护的基类“表” protected继
tp=new asp\u table
,它不允许我编译说我没有访问权限。
我不明白为什么?我试图创建一个从基类到派生类的指针,但它不允许我这样做。我想知道为什么
类表{
整数大小;
int优先级;
公众:
表(ints=0,intp=0):大小(s),优先级(p){
虚拟空打印(){}
};
类stud_表:公共表{
字符*名称;
int gr;
公众:
void print(){cout错误消息说明了一切:
无法将“asp\U表”强制转换为其受保护的基类“表”
protected
继承意味着只有asp_表
及其派生类知道继承。因此tp=new asp_表
在类或其派生类之外是不可能的。访问什么?请在问题中添加完整的错误消息。错误:转换为不可访问的基类“table”是不允许的。非常感谢您的评论:(但我仍然不明白…所以基本上我不能在派生类作为受保护继承时使用多态性?是的,不在类或其派生类之外。这就是受保护继承的含义。似乎您想要使用公共继承。