本文不对基类中的public成员被继承(无论是哪种类型的继承)做过多赘述,只针对于基类的private成员被继承进行一些讨论。
学习继承过程中,下图想必诸君都曾见过:
成员/继承方式 | public继承 | protected继承 | private继承 |
基类public成员 | 派生类public成员 | 派生类protected成员 | 派生类private成员 |
基类protected成员 | 派生类protected成员 | 派生类protected成员 | 派生类private成员 |
基类private成员 | 派生类不可见 | 派生类不可见 | 派生类不可见 |
那么图中的不可见到底意味着什么?是否意味着其未被派生类所继承?通过以下代码我们进行一下具体分析:
#include <iostream>
class a
{
public:
void print()
{
std::cout << "private成员地址:" << &x << std::endl;
}
private:
int x;
};
class b:public a {};
int main()
{
std::cout << "基类大小:" << sizeof a << std