c++ ----继承方式
继承的语法
子类:继承方式 父类
代码部分
#include<iostream>
using namespace std;
//继承的三种方式
//公共继承
//保护继承
//私有继承
//注意事项
//子类无论是以那一种方式继承,都不能访问父类中的私有权限的成员
//若子类以public方式继承,,在不改变父类访问权限的情况下继承
//若子类以protected的方式继承,那么所继承的成员属性和函数都变为protected权限
//若一private方式继承,那么所继承的成员都变为private权限
class Base1
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//首先是公共继承
class Son1 :public Base1
{
void funtion()
{
m_A = 100;//父类中公共权限的成员,子类公共继承后仍为公共权限
m_B= 100;//父类中保护权限的成员,子类公共继承后仍为保护权限
//m_C = 100;//子类无法访问父类中私有权限的内容
}
};
void test01()
{
Son1 s1;
s1.m_A = 1000;
cout << s1.m_A << endl;
//s1.m_B = 100;//继承后父类中的保护权限内容,在子类中仍为保护权限,所以无法访问
}
/*------------------------------分割线-----------------------------------------------------------------*/
class Base2
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son2 :protected Base2
{
void function()
{
m_A = 100;//父类中公共权限的成员,子类保护继承后变为:保护权限
m_B = 100;//父类中保护权限的成员,子类保护继承后,仍为保护权限
}
};
void test02()
{
Son2 s2;
/*s2.m_A = 1000;
s2.m_B = 1000;*///由于继承后变成了保护权限,所以类外不能访问成员
}
/*------------------------------分割线-----------------------------------------------------------------*/
class Base3
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son3 :private Base3
{
void function()
{
m_A = 100; //父类中公共权限的成员,子类私有继承后变为:私有权限
m_B = 100;//父类中保护权限的成员,子类私有继承后变为:私有权限
}
};
class grandson :public Son3
{
void fun()
{
//由于父类的成员在私有继承后都变为了私有权限,所以其子类不能访问父类的私有成员了
//m_A = 100;
//m_B = 100;
}
};
void test03()
{
Son3 s3;
//s3.m_A = 100;//由于已经变成了私有权限,所以类外不能访问成员
//s3.m_B = 100;
}
int main()
{
test01();
system("pause");
return 0;
}
原理图

1451

被折叠的 条评论
为什么被折叠?



