C++程序设计:利用指针访问私有数据成员

需积分: 16 16 下载量 27 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"这篇资料主要介绍了如何在C++中利用指针访问私有数据成员,这是面向对象编程中的一个重要概念。文中通过一个名为`Test`的类展示了如何设置和获取私有数据成员`x`和`y`。同时,资料还提及了C++语言的发展历史和特点,强调了C++作为C语言的扩展,具备结构化、高效、可移植以及灵活性高等特性。" 在C++中,类的私有数据成员是不能直接被外部代码访问的,以保护数据的安全性和封装性。但是,可以通过公有成员函数(如setter和getter)来间接访问这些私有数据。在给出的例子中,`Test`类有两个私有变量`x`和`y`,一个`Setxy`函数用于设置它们的值,一个`Getxy`函数用于获取它们的值,以及一个`Printxy`函数用于打印`x`和`y`。 ```cpp class Test { int x, y; // 私有数据成员 public: void Setxy(int a, int b) { x = a; y = b; } // 设置x和y的值 void Getxy(int *px, int *py) {*px = x; *py = y;} // 提取x和y的值 void Printxy(void) { cout << "x=" << x << '\t' << "y=" << y << endl; } // 打印x和y的值 }; int main(void) { Test p1, p2; p1.Setxy(3, 5); // 设置p1的x和y int a, b; p1.Getxy(&a, &b); // 将a设为p1的x,b设为p1的y cout << a << '\t' << b << endl; // 输出a和b的值 } ``` 在这个程序中,`main`函数创建了两个`Test`类的对象`p1`和`p2`。`p1.Setxy(3, 5)`用于设置`p1`的`x`和`y`值。然后,通过`Getxy`函数,`p1`的`x`和`y`值分别赋给了`a`和`b`,最后输出`a`和`b`的值,即3和5。 C++的发展历程中,它从早期的BCPL和B语言演变而来,由Dennis Ritchie和Brian Kernighan设计的C语言在20世纪70年代流行起来。C++是在C语言的基础上增加面向对象特性,如类、继承、多态等,从而使得程序设计更加模块化和易于维护。 C++语言的特点包括: 1. 结构化编程:C++支持结构化编程,使得程序结构清晰,易于理解和维护。 2. 高效性:C++编译后的程序执行效率高,因为它允许直接操作内存,同时提供了丰富的运算符和数据结构。 3. 可移植性:C++程序可以在不同平台和硬件上运行,只需少量或无需修改。 4. 灵活性:C++允许程序员选择不同的编程风格,从过程式编程到面向对象编程,甚至泛型编程。 然而,C++的灵活性也意味着对于初学者来说,掌握其语法和调试可能更具挑战性。由于语法结构相对宽松,编写程序时需要注意确保正确性,因为编译错误并不总是能揭示所有潜在问题。尽管如此,熟悉C++的程序员能够编写出高效且可重用的代码。