c++继承之重名成员

一、概念:

1、派生类定义了与基类同名的成员,在派生类中访问同名成员时屏蔽(hide)了基类的同名成员

2、在派生类中使用基类的同名成员,显式地使用类名限定符:

类名 :: 成员

二、举例

class base

 { public :

           int a ,  b ; 

 } ;

class derived : public  base

 { public : 

        int  b ,  c ;

 } ;

void f ()

{ derived  d ;

  d . a = 1 ;

  d . base :: b = 2 ;

  d . b = 3 ;

  d . c = 4 ;

};

class A

{ public:    

      int a1, a2 ;

     A( int i1=0, int i2=0 ) { a1 = i1; a2 = i2; }

     void print()

        { cout << "a1=" << a1 << '\t' <<"a2=" << a2 << endl ; }

};

class B : public A

{ public:  

      int b1, b2 ;

      B( int j1=1, int j2=1 ) { b1 = j1; b2 = j2; }

      void print()                  //定义同名函数

        { cout << "b1=" << b1 << '\t' <<"b2=" << b2 << endl ; }

void printAB()

       { A::print() ;              //派生类对象调用基类版本同名成员函数

           print() ;                //派生类对象调用自身的成员函数

      }

};

int main()

{ B b ;        b.A::print();        b.printAB();  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值