C++入门:面向对象的类与数据结构——向量示例
需积分: 10 49 浏览量
更新于2024-07-21
收藏 503KB PDF 举报
在C++引论第六课中,我们深入探讨了面向对象编程的核心概念——类和数据结构,特别是通过实例化用户自定义数据类型来更好地理解和应用。课程的重点围绕着如何设计和实现一个代表几何向量的数据结构。
首先,几何向量在几何学中被定义为由两个点组成:起点和终点。每个点都有自己的x和y坐标。例如,我们可以用以下形式表示一个二维向量:
```cpp
class GeometricVector {
public:
double xStart;
double yStart;
double xEnd;
double yEnd;
};
// 定义起点和终点
GeometricVector start = {0.4, 0.8};
GeometricVector end = {0.9, 1.5};
```
传统的表示方法可能涉及到四个double变量(start_x, start_y, end_x, end_y),这样在传递和操作这些向量时,需要同时处理这四个值。然而,这种做法并不高效,也不易于维护。
为了简化操作,可以创建一个名为`printVector`的函数,接收向量的各个坐标作为参数,如下面的`main`函数所示:
```cpp
void printVector(double x0, double x1, double y0, double y1) {
cout << "(" << x0 << "," << y0 << ") -> (" << x1 << "," << y1 << ")" << endl;
}
int main() {
double xStart = 1.2;
double xEnd = 2.0;
double yStart = 0.4;
double yEnd = 1.6;
// 调用函数打印向量
printVector(xStart, xEnd, yStart, yEnd);
// 输出:(1.2, 0.4) -> (2.0, 1.6)
}
```
进一步,我们可以创建一个名为`offsetVector`的函数,用于对向量进行偏移操作,它接受向量的坐标引用以及偏移量,这样可以直接修改原向量的值,而无需返回新的对象:
```cpp
void offsetVector(double& x0, double& x1, double& y0, double& y1,
double offsetX, double offsetY) {
x0 += offsetX;
x1 += offsetX;
y0 += offsetY;
y1 += offsetY;
}
```
这样,当我们需要对向量进行平移或其他基于偏移的操作时,只需调用`offsetVector`函数即可,代码可读性和效率都得到了提升。
总结来说,C++引论第六课强调了类和数据结构在抽象几何向量这一具体场景中的应用,展示了如何通过用户定义的数据类型(如`GeometricVector`)来组织和操作数据,以及如何利用函数参数和引用优化代码的性能。通过这样的讲解,学习者能够更好地理解面向对象编程的封装和内聚性原则,并将其应用于实际问题解决中。
2015-12-11 上传
2015-12-11 上传
2022-06-12 上传
2022-08-03 上传
2022-11-16 上传
2010-03-01 上传
2008-09-05 上传
2018-11-29 上传
2015-02-08 上传
qq_33309125
- 粉丝: 0
- 资源: 7
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南