永发信息网

如何访问类中的private成员变量

答案:1  悬赏:0  手机版
解决时间 2021-01-28 09:55
如何访问类中的private成员变量
最佳答案
总所周知,类中的private属性的成员变量在类外是无法访问的,今天我们探讨的就是如何在类外访问private属性的成员变量。

我们先来看一个简单的例子:

class STU
{
public:
STU()
{
x = 5;
y = 10;
}
private:
int x;
int y;
};

int main()
{
STU t;
int*p = (int*)&t + 1;
return 0;
}

通过上面的代码我们可以知道,方法是把类对象的地址强制转化为int*类型,因为类对象里存储的只是成员变量,所以通过对指针的操作可以访问到private类型的成员变量。

接下来还有一个例子:

class STU
{
public:
STU()
{
c = 'f';
y = 10;
}
private:
char c;
int y;
};

int main()
{
STU t;
int*p = (int*)((char*)&t + 4);
cout << *p << endl;
return 0;
}

这段代码中最重要的就是int*p = (int*)((char*)&t + 4);
因为第一个数据是char类型的,所以要把对象的地址转化为char*型,对象中存在两种类型的数据,需要考虑内存对齐,所以当要访问下一个int型变量的时候,指针需要加4,而不是加1。最后要取到int型的变量,还是要把地址强转为int *。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
家天下家居地址好找么,我有些事要过去
工程系列中级专业技术职务评审是什么意思
安徽省含山县什么时候有火车站
下列选项中,属于自助委托形式的有()。Ⅰ.
东京湾的意思是什么啊?知道的请说下!
乐活时尚家饰家居生活馆地址好找么,我有些事
下面漫画“永不走路,永不摔跤,永处襁褓”启
员工离职最后一天还要算工资吗
相和歌的意思是什么啊?知道的请说下!
动画 lovelive好看吗?
需要测量一个人在某一方面的发展潜能时,我们
电子商务家具城地址在什么地方,我要处理点事
美术作品:帮我在网上找几幅图画来 题目:熟
外贸风险控制
开犁易农宝贷款办理九台农商银行可办理几款贷
推荐资讯
小米锁屏设置在哪里?怎么设置
吃芭蕉会不会长胖?
4399小游戏大全什么意思?
mysql 怎么知道 数据库大小。在phpmyadmin中
发秀的意思是什么啊?知道的请说下!
竹邨的意思是什么啊?知道的请说下!
质量管理理论中全面质量控制、全过程质量控制
鸦臼的意思是什么啊?知道的请说下!
如何从墨圈里退出
南京地铁2号线集庆门大街站怎么会有4条轨道?
光明眼镜行地址有知道的么?有点事想过去
肯德基米饭系列怎么不出了?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?