指针与C++ 基本原理

来源:互联网 发布:淘宝外贸鞋店推荐 编辑:程序博客网 时间:2024/06/01 08:01

摘自C++ Primer Plus 第五版.

面向对象编程与传统的过程性编程的区别在于,OOP 强调的实在运行阶段(而不是在编译阶段)进行决策.

运行阶段指的是程序正在运行时,编译阶段指的是编译器将程序组合起来时.运行阶段就好比度假时,选择参观那些

景点取决于当时的天气和心情; 而编译阶段决策更像不管在什么条件下,都坚持预先设定的日程安排.

运行阶段决策提供了灵活性,可以根据当时的情况进行调整. 例如,考虑为数组分配内存的情况.传统的方法是

声明一个数组.要在C++ 中声明数组,必须指定数组的长度.因此数组长度在程序编译时就设定好了; 这就是编译阶段决策. 读者可能认为,在80% 的情况下,一个包含20个数组的元素足够了,但程序有时需要处理200个元素. 为了

安全起见, 使用了一个包含200 个元素的数组. 这样, 程序在大多数情况下都浪费了内存. OOP 通过将这样的决策

推迟到运行阶段进行, 使程序更灵活. 在程序运行后, 可以再告诉他只需要20个元素, 而还可以下次告诉他需要205个元素.

总之使用OOP 时, 你可能在运行阶段确定数组的长度. 为使用这种方法, 语言必须允许程序运行时创建数组,

C++ 采用的方法是, 使用关键字new 请求正确数量的内存以及使用指针来跟踪新分配的内存的位置.

原创粉丝点击