$ 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'
$
我只是不明白这个错误。
据我所知,正如本教程所确认的,private
继承仅应更改class B
外部成员对成员的可见方式。
我认为私人说明者所做的不只是改变class B
成员的可见性。
- 我会得到什么错误,这是什么意思?
- 基本上,在C ++中允许这种类型的代码有什么问题?看起来完全无害。
protected