C++中巧用#define访问类的私有成员

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

我们知道,类的私有成员在类的外部是不能被访问的。

例如有下面的这个简单的类:

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兼容。所以只有在非常非凡的情况下,才会用这种非正规方法访问类的私有或保护成员。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航