C++通过指针访问类私有成员
在 C++ 中,类的私有成员无法被外部函数直接访问,这是为了保证数据安全和封装性。然而,我们可以利用指针间接地访问和修改这些私有成员。
以下代码示例展示了如何利用指针访问类的私有成员 x 和 y:
class Test {
int x, y;
public:
void Setxy(int a, int b) {
x = a;
y = b;
}
void Getxy(int *px, int *py) {
*px = x;
*py = y;
}
void Printxy(void) {
cout << "x=" << x y=" << y << endl;
}
};
int main() {
Test obj;
int a, b;
obj.Setxy(10, 20);
// 通过 Getxy 函数获取 x 和 y 的值
obj.Getxy(&a, &b);
cout << " a=" << a << " xss=removed>
代码解析:
Test类定义了两个私有成员变量x和y,以及三个公有成员函数Setxy、Getxy和Printxy。Setxy函数用于设置x和y的值。Getxy函数接收两个指向整数的指针px和py作为参数。在函数内部,*px和*py分别被赋值为x和y的值。main函数中,首先创建了一个Test类的对象obj,并调用Setxy函数初始化其成员变量。- 接着,声明了两个整型变量
a和b,并将它们的地址作为参数传递给Getxy函数。 Getxy函数通过指针修改了a和b的值,从而间接地访问了私有成员x和y。
需要注意的是,虽然可以通过指针访问私有成员,但这并不是推荐的做法。 因为这种操作破坏了类的封装性,可能会导致程序难以维护和调试。
文件大小:8.66MB
评论区