C++程序设计:利用指针访问私有数据成员
需积分: 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++的程序员能够编写出高效且可重用的代码。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-10-24 上传
2011-03-30 上传
小婉青青
- 粉丝: 27
- 资源: 2万+
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用