- 引言
对象的C++语言与以往的模块化程序语言的不同点在于:数据与操作数据的函数连接起来(即:封装性),结构紧凑,数据安全。正是由于这种封装性,大大强化了C++语言的可移植性及数据的安全性。类封装的形式很简单,本文主要谈谈封装的内部结构。
- 实例问题
- 类的内部数据存储地址仅表示相对对象首地址的地址偏移量。实例(引自:疯狂学习ING<作者网名>)如下:
#include <iostream.h>
class base {
//
假定有很多成员
//.....
//.....
};
class derived1: public base
{
private:
int
d_a1;
int d_b1;
//.....//
其它成员
public:
void
display_a(void)
{
cout <<"d_a1 =" <<
d_a1<<endl;
}
};
class derived2: public
base
{
public:
int d_a2;
int
d_b2;
};
void main()
{
int base::*p;
//d_a2是derived2的public成员,是可以存储的。
p = (int
base::*)&derived2::d_a2;
derived1 d1;
//参照p来存取derived1::d_a1私有变量
d1.*p =
100;
d1.display_a();
}
已晚,择日续写
- 解释说明