三种继承方式
- 公有继承
class Son1 :public Base1
不可访问父类的私有成员和保护成员 - 保护继承
class Son1 :protected Base1
父类的公有成员和保护成员在子类中均变为保护成员 不可访问父类的私有成员 - 私有继承
class Son1 :private Base1
父类的公有成员和保护成员在子类中均变为私有成员 不可访问父类的私有成员
#include<iostream>
using namespace std;
class Base1
{
protected:
int m_B;
private:
int m_C;
public:
int m_A;
};
//公有继承
class Son1 :public Base1
{
public:
void func()
{
// m_A = 10;//父类中的公有成员 可以访问
//m_B = 10;//谷类中的保护成员 子类不可访问
//m_C = 10;//谷类中的私有成员 子类不可访问
}
};
void test01()
{
Son1 son;
son.m_A = 100;
}
class Son2:protected Base1
{
void func()
{
// m_A = 100;//父类中的公有成员变为保护成员
// m_B = 100;//父类中的保护成员认为保护成员
//m_C = 10;//谷类中的私有成员 子类不可访问
}
};
void test02()
{
Son2 s2;
s2.m_A = 10;
s2.m_B = 10;
s2.m_C = 10;
}
class Son3:private Base1
{
void func()
{
//m_A = 100;//父类中的公有成员变为 私有成员
//m_B = 100;//父类中的保护成员变为 私有成员
//m_C = 10;//父类中的私有成员 子类不可访问
}
};
void test03()
{
Son3 s3;
// s3.m_A = 10;//变为私有成员 不可访问
// s3.m_B = 10;变为私有成员 不可访问
//s3.m_C = 10;
}
int main()
{
test01();
test02();
test03();
return 0;
}