#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();
}
内部类
最新推荐文章于 2024-06-30 00:15:00 发布