#include<iostream>
using namespace std;
class Father
{
public: int m_a;
protected: int m_b;
private: int m_c;
};
//公共继承
class Son1 :public Father
{
public:
void func()
{
m_a = 10;//父类公共属性依然是公共属性
m_b = 10;//父类保护属性变公共属性
//m_c = 10;//父类私有属性禁止访问
}
};
//保护继承
class Son2 :protected Father
{
public:
void fun()
{
m_a = 10;//变保护对象
m_b = 10;//被保护对象
//m_c = 10;//不可访问对象
}
};
//隐私继承
class Son3 :private Father
{
public:
void fun()
{
m_a = 10;
m_b = 10;
//m_c = 10;//不可访问
}
};
class Son3_Son1 :public Son3
{
public:
//m_a = 10;以Son3为基类的子类不可以访问从Father继承的所有属性。
};
void test1()
{
Son1 son;
son.m_a = 10;//类外可以访问
//son.m_a_b = 10;//类外禁止访问保护属性
return;
}
void test2()
{
Son2 son;
//son.m_a;//类外不可访问受保护对象
}
void test3()
{
Son3 son;
//son.m_a;不可以访问私有属性。
}
int main()
{
test1();
test2();
test3();
system("pause");
return 0;
}
c++ 完全弄懂公共继承,保护继承和私有继承
最新推荐文章于 2024-07-06 10:38:17 发布