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
文件大小:
评论区