内部类

来源:互联网 发布:mac怎么玩qq游戏 编辑:程序博客网 时间:2024/06/06 03:07
#include<iostream>using namespace std;class Outer{    public:        //如果此时Inner被private修饰,则下面Outer::Inner in 就不能创建出对象来        class Inner        {            public:                void setOuter(Outer &o)                {                    o.m_outer=10;                }                void out()                {                    cout<<"innerVal:"<<m_inner<<endl;                }            private:                int m_inner;        }m_InnerObject;  //如果Inner被private修饰,只能声明时就创建出对象,        //外部类不能访问内部类私有成员    /*  void setInner(Inner &in)        {            in.m_inner=100;        }    */          void out()        {            cout<<"outerVal:"<<m_outer<<endl;        }    private:        int m_outer;};//外部类不能访问内部类私有成员//内部类可以访问外部类私有成员//如果私有成员为静态则无限制void main(){    Outer out;    //Inner in;//error,要声明作用域     Outer::Inner in;    //out.setInner(in);//error,外部类不能访问内部类私有成员    in.setOuter(out);    out.out();    in.out();    out.m_InnerObject.out();    }
原创粉丝点击