相关疑难解决方法(0)

继承:'A'是'B'无法访问的基础

$ cat inheritance.cpp 
#include <iostream>

using namespace std;

class A { };
class B : private A { };

int main() {
    A* ab = new B;
}
$
$ g++ inheritance.cpp
inheritance.cpp: In function 'int main()':
inheritance.cpp:9: error: 'A' is an inaccessible base of 'B'
$
Run Code Online (Sandbox Code Playgroud)

我只是不明白这个错误.

据我所知,正如本教程所证实的那样,private继承只应改变class B外部世界可见成员的方式.

我认为私有说明者所做的不仅仅是改变class B成员的可见性.

  • 我该怎么得到这个错误,这是什么意思?
  • 基本上在C++中允许这种类型的代码有什么问题?看起来完全无害.

c++ inheritance

77
推荐指数
4
解决办法
7万
查看次数

标签 统计

c++ ×1

inheritance ×1