gpt4 book ai didi

c++ - 类中静态成员的地址

转载 作者:太空狗 更新时间:2023-10-29 23:50:17 24 4
gpt4 key购买 nike

如何在 C++ 中获取类的私有(private)静态成员的内存地址。在下面的代码中,我直接通过内存地址访问类的私有(private)成员。

#include <iostream>

class directM {
int a;
int b;
public:
directM(int aa , int bb){
a = aa;
b = bb;
}
void show(){
std::cout << a << b << std::endl;
}
};

int main(){
directM dm(10,20);
dm.show();
*(int*)( &dm ) = 15;
*(int*)( ( (int*)(&dm) ) + 1 ) = 25;
dm.show();
return 0;
}

现在,如果我更改其中一个成员并将其设为静态,即

static int b;

现在我怎样才能通过地址直接访问这个私有(private)成员。

注意:- 我知道这是一种非常不明智的访问数据的方式,我不会用它来解决任何问题。这只是为了更好地了解语言的学习练习。

最佳答案

静态成员变量不是对象的一部分,它们的存储是完全独立的。如果不访问变量名,没有办法知道它们的位置。

关于c++ - 类中静态成员的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32509820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com