本文介绍了访问派生类中的私有成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨在以下代码中,为什么派生类可以在我是私有成员且私有成员不访问Derive的情况下访问基类i成员?




  class 基本{
     int  i;
受保护的:
     int  read(){返回 i; }
    无效 集合( int  ii){i = ii; }
公共:
    Base(){i =  0 ; }
     int  ( int  m){返回 m * i; }
};
派生: public 基数{
     int  j;
公共:
    Derived(){j =  0 ; }
    无效更改( int  x){ set  (X); cout<<读(); }

};
 int  main(){
    派生d;
    d.change( 10 );
    返回  0 ;
} 



[edit]已对代码块进行排序-OriginalGriff [/edit]

解决方案




hiin the following code why derived class can access to Base class i member while i is private and private members doesn''t Derive ?




class Base {
    int i;
protected:
    int read() { return i; }
    void set(int ii) { i = ii; }
public:
    Base() { i=0; }
    int value(int m) { return m*i; }
};
class Derived : public  Base {
    int j;
public:
    Derived() { j=0; }
    void change(int x) { set(x); cout << read(); }

};
int main() {
    Derived d;
    d.change(10);
    return 0;
}



[edit]Code block sorted - OriginalGriff[/edit]

解决方案




这篇关于访问派生类中的私有成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 08:03
查看更多