【发布时间】:2014-09-30 14:00:26
【问题描述】:
我试图访问该类的私有数据成员。在我遇到int* 之前,一切都很顺利。我不明白它是什么。我认为这是我们可以用来创建新内存地址的东西。
我的代码:
#include <iostream>
using namespace std;
class x
{
int a, b, c, d;
public:
x()
{
a = 100;
b = 200;
c = 300;
d = 400;
}
};
int main()
{
x ob;
int *y = (int *)&ob;
cout << *y << " " << y[1] << " " << y[2] << " " << y[3] << endl;
}
谁能帮助我理解它?
【问题讨论】:
-
google it..你可以在堆栈溢出中找到很多
-
这是 C 风格的演员表。
-
你对 C++ 了解多少?它正在投射一个指向
int*类型的指针。这可能会破坏现代别名规则(我永远记不得了),因此通常可能不会那样做。在这里,您假设 int 存储为类的前几个元素,这取决于类中是否有任何虚函数或您是否使用 RTTI 编译,这可能是正确的,也可能不是。 -
I came up with the。你对指针一无所知,但你想出了int *y = (int*)&ob;?酷:)