私有成员有没有被继承?
私有成员有没有被继承?
私有成员被继承,只不过子类不能访问父类的私有成员。很好证明:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 class Base
2 {
3 private :
4 int a;
5 };
6
7 class Derived:Base
8 {
9 private :
10 int b;
11 };
12
13
14 int _tmain(int argc, _TCHAR* argv[])
15 {
16 Base base;
17 std::cout<<sizeof(base); // 4
18
19 std::cout<<std::endl;
20
21 Derived derived;
22 std::cout<<sizeof(derived); // 8
23
24 return 0;
25 }
另一个例子,就是noncopyable,noncopyable声明私有的copy构造和copy赋值,没有定义。继承noncopyable的类,就不能copy构造和copy赋值了,说明继承了noncopyable的私有成员。
也就是说,子类继承父类所有的成员,但是不能访问父类的私有成员。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步