Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多态性与保护继承问题_C++_Oop_Pointers_C++11 - Fatal编程技术网

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”是不允许的。非常感谢您的评论:(但我仍然不明白…所以基本上我不能在派生类作为受保护继承时使用多态性?是的,不在类或其派生类之外。这就是受保护继承的含义。似乎您想要使用公共继承。