zoukankan      html  css  js  c++  java
  • 指针与C++基本原理

    面向对象编程与传统的过程性编程的区别在于,OOP强调的是在运行阶段(而不是编译阶段)进行决策。运行阶段指的是程序正在运行时,编译阶段指的是编译器将程序组合起来时。运行阶段决策就好比度假时,选择参观那些景点取决于天气和当时的心情;而编译阶段决策更像不管在什么条件下,都坚持预先设定的日程安排。
    运行阶段决策提供了灵活性,可以根据当时的情况进行调整。例如,考虑为数组分配内存的情况。传统的方法是声明一个数组。要在C+中声明数组,必须指定数组的长度。因此,数组长度在程序编译时就设定好了;这就是编辑阶段决策。虽有可能在80%的情况下,一个包含20个元素的数组足够了,但程序有时需要处理200个元素。为了安全起见,使用了一个包含200个元素的数组。这样,程序在大多数情况下都浪费了内存。OOP通过将这样的决策推迟给运行阶段进行,使程序更灵活。在程序运行后,可以这次告诉它只需要20个元素,而且还可以下次的时候告诉它需要205个元素。
    总之,使用OOP时,您可以在运行阶段确定数组的长度。为了使用这种方法,语言必须允许在程序运行时创建数组。C++采用的方法是,使用关键字new请求正确数量的内存以及使用指针来跟踪新分配的内存的位置。
    在运行阶段作决策并非OOP独有的,单使用C++编写这样的代码比使用C语言简单。

    使用new来分配内存:
    int* a = new int;
    使用delete释放内存:
    delete a;
    使用new来创建动态数组:
    int* psome = new int [10];
    delete [] psome;

  • 相关阅读:
    [JLOI2015] 管道连接
    【知识点】斯坦纳树
    [ZJOI2010] 网络扩容
    【知识点】网络流常见模型
    [NOI2009] 植物大战僵尸
    [NOI2007] 货币兑换
    【知识点】分治相关算法
    [NOI2005] 月下柠檬树
    [HNOI2012] 射箭
    [SDOI2014] 向量集
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5647871.html
Copyright © 2011-2022 走看看