通过指针访问类的私有成员

定义了一个Person类
class Person
{
private:
	int x;
	int y;
public:
	Person(int x, int y)
	{
		this->x = x;
		this->y = y;
	}
	//声明友元函数			
	//friend void Print(const  Person& refPer);			
};

一般正常我们使用Person
int main(int argc, char* argv[])
{
	Person p(1, 2);
	printf("%d",p.x);

	return 0;
}
正常情况下是无法访问到x的,但是可以通过指针直接访问到x,和y:
int main(int argc, char* argv[])
{
       Person p(1, 2);
    int* m = (int*)&p;
    int n = *(m + 1);
    printf("%d,%d", *m, n);

    return 0;
}

发表评论 / Comment

用心评论~