c++嵌套类--有疑问

3 篇文章 0 订阅
class printer {
	int nono;
public:
	printer();
	~printer();
private:
	class Impl;
	Impl *p;//只能声明嵌套类的指针和引用
	int static pri;
	int yyy;
};
class printer::Impl {
public:
	Impl() { printer::pri = 1; };
	Impl(printer out) { 
		printer::pri = 1; //可以访问外部类的 私有!!!!
		out.nono = 1;// 可以访问外部类的 私有!!!!
		out.yyy = 1;//可以访问外部类的 私有!!!!
	};
	~Impl() { };
	int a;
private:
	int b;
	int static  c;
};
printer::printer() :p(new Impl){
	p->a = 1;
	p->b = 1;// 不能访问嵌套类的私有,错误
	p->c = 1;// 不能访问嵌套类的私有,错误
}
printer::~printer() {

}

1.前项声明只能是指针或引用

2.外围类不能访问嵌套类中私有成员

3.嵌套类可以访问外部内的私有成员,但是网上都说外围类对嵌套类成员的访问没有任何特权,嵌套类对外围类成员的访问也同样如此,它们都遵循普通类所具有的标号访问控制 ,????

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值