类的继承

                                                        类的继承

(1)#include<iostream.h>
          class A
          {
            public:
                  void funA();
            protected:
                  int a1;
            private:
                  int a2;
            };

          class B:public A
         {
          public:
               void funB();
          protected:
               int b1;
          private:
               int b2;
           };
        class C:private B
        {
         public:
         void funC();
        };
请回答下列问题:
1)派生类B中的成员函数funB()能否访问基类A中的成员函数funA()和成员变量a1,a2。
2)  派生类B的对象能否访问基类A中的成员函数funA()和成员变量a1,a2。
3)  派生类C中的成员函数funC()能否访问基类B中的成员函数funB()和成员变量b1,b2。
4)   派生类C中的成员函数funC()能否访问基类A中的成员函数funA()和成员变量a1,a2。
5)  派生类C中的对象能否访问基类B中的成员函数funB()和成员变量b1,b2。
6) 派生类C中的对象能否访问基类A中的成员函数funB()和成员变量a1,a2。
(2)设有以下类的定义:
              class base
           {
               int m1;
            protected:int m2;
            public:int m3;
            };
             class derive:private base
           {
                     int n1;
                     protected:int n2;
                     public:int n3;
            };
请按访问权限写出派生类derive中具有的各中成员
公有成员:
保护成员:
私有成员:
答案:
(1)
1)派生类B中的成员函数funB()能访问基类A中的成员函数funA()和成员变量a1,但是不能访问成员变量a2。
2)派生类B的对象能访问基类A中成员函数funA(),但不能成员变量a1和a2。
3)派生类C中的成员函数funC()能访问基类B中的成员函数funB()和成员变量b1,但是不能访问成员变量b2。
4)派生类C中的成员函数funC()能访问基类A中的成员函数funA()和成员变量a1,但是不能访问成员变量a2。
5)派生类C中的对象不能访问基类B中的成员函数funB(),成员变量b1和b2。
6)派生类C中的对象不能访问基类A中的成员函数funA(),成员变量a1和a2。
(2)
m3,
n2,
m2、m3、n1
总结:
        派生类的成员函数可以访问基类的成员函数,对象要依据派生属性来决定。基类的private对派生类是不可见的。
在私有继承方式下,基类的公有成员和保护成员都作为派生类的私有成员,基类的私有成员对于派生类而言是不可见的,即派生类不可以访问基类中中的私有成员。因此,基类的私有成员包括m2、m3和n1,m2和m3是从基类继承而来的。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值