//4.6.2 �̳з�ʽ //�̳е��:class ���� : �̳з�ʽ ���� //�̳з�ʽһ��������: //?�����̳� //?�����̳� //?˽�м̳� #include <iostream> class Base1 { public: int m_A; protected: int m_B; private: int m_C; }; class Son1 :public Base1 { public: void func() { m_A = 10; //�����еĹ���Ȩ��Ա����������Ȼ�ǹ���Ȩ�� m_A = 10; //�����еı���Ȩ��Ա����������Ȼ�DZ���Ȩ�� //m_C = 10; //�����е�˽��Ȩ��Ա����������Ȼ��˽��Ȩ�� } }; void test01() { Son1 s1; s1.m_A = 100; //s1.m_B = 100; //��Son1�� m_B �DZ���Ȩ�� ������ʲ��� } //�����̳� class Base2 { public: int m_A; protected: int m_B; private: int m_C; }; class Son2 :protected Base2 { public: void func() { m_A = 100; //������������б�ɱ���Ȩ�� m_B = 100; //���ౣ���������б�ɱ���Ȩ�� //m_C = 100; //������ʲ��� } }; void test02() { Son2 s1; //s1.m_A = 1000; //��Son2�� m_A��Ϊ����Ȩ�� ���������ʲ��� //s1.m_B = 1000; //��Son2�� m_A��Ϊ����Ȩ�� ���������ʲ��� } class Base3 { public: int m_A; protected: int m_B; private: int m_C; }; class Son3 :private Base3 { public: void func() { m_A = 100; //�����й�����Ա�������Ϊ˽�г�Ա m_B = 100; //�����б�����Ա�������Ϊ˽�г�Ա //m_C = 100; //������˽�г�Ա��������ʲ��� } }; class Grandson :public Son3 { public: void func() { //m_A = 1000; //����Son3�� m_A��Ϊ˽�� ��ʹ�Ƕ��� Ҳ�Ƿ��ʲ��� //m_B = 1000; //����Son3�� m_B��Ϊ˽�� ��ʹ�Ƕ��� Ҳ�Ƿ��ʲ��� } }; void test03() { Son3 s1; //s1.m_A = 1000; //��Ϊ˽�г�Ա ������ʲ��� //s1.m_C = 1000; //��Ϊ˽�г�Ա ������ʲ��� } int main() { system("pause"); return 0; }