Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1477027
  • 博文数量: 213
  • 博客积分: 10418
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-09 23:49
文章分类

全部博文(213)

文章存档

2014年(1)

2013年(5)

2012年(11)

2011年(2)

2010年(8)

2009年(26)

2008年(160)

分类: C/C++

2008-04-11 00:05:51

我们知道,类的私有成员在类的外部是不能被访问的。
    例如有下面的这个简单的类:

class ClxECS
{
private
:
    
int
 iPrivate;
};

     那么下面的这个函数是不能通过编译的:

void ECS_test()
{
    ClxECS lx;
    lx.iPrivate 
= 13
;

    cout 
<< lx.iPrivate <<
 endl;
}

    但是,我们并不是没有办法来访问类的私有成员。
    其实,方法很简单,只要在类的声明前面加上如下一行代码就行了:

#define private public

    同样的,这个方法对保护成员也适用:

#define protected public

    但是,这是一个非正规的手段,它将破坏类的所有封装性。而C++中的#define的存在也是为了跟C兼容。所以只有在非常特殊的情况下,才会用这种非正规方法访问类的私有或保护成员。

阅读(1079) | 评论(0) | 转发(0) |
0

上一篇: 一道算法题

下一篇:虚函数

给主人留下些什么吧!~~