zoukankan      html  css  js  c++  java
  • c++相对于C提供的新的函数特性

    新特性包含 内联函数、按引用传递变量、默认的参数值、函数重载(多态) 以及模板函数

    内联函数:是c++为了提高程序运行速度所做的一项改进。常规函数与内联函数的区别不在于编写方式,而在与C++编译器如何将他们组合到程序中。

    程序执行函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起到的内存单元,执行函数代码(也许还需将返回值放入到寄存器中),然后调回到地址被保存的指令处。来回跳跃并记录跳跃位置需要一定的开销。

    内联函数的编译代码与其他程序代码“内联”起来了。即:编译器使用相应的函数代码替换函数调用。 程序无需跳转,但是代价是:需要更多的内存。 如果程序在10个不同的地方调用同一个内联函数,改程序将包含该函数的10个代码拷贝。

    如果执行函数代码的时间比处理函数调用机理的时间长,则所节省的时间很少,则不选择内联函数。通常,如果函数定义占用多行,则将其作为内联函数就不太合适。

    在函数声明和定义前添加: inline。

    引用变量:引用是已定义的变量的别名。  引用变量的主要用途是用作函数的参数,通过将引用变量用作参数,函数将使用原始数据,而不是拷贝。 

    引用与指针的差别:必须在声明引用时将其初始化。而不像指针那样,先声明,再赋值。 引用一旦被初始化,便不能改变其指向。、

    引用经常被用作函数参数,是的函数中的变量名成为调用程序中的变量的别名,这种传递参数的方法称为按引用传递。C++新增的这项特性是对C的超越,C只能按值传递。

    临时变量、引用参数和const:如果实参与引用参数不匹配,C++将生成临时变量。现在,仅当参数为const引用时,C++才允许这样做,但这是一种新的限制。

    应尽可能使用const:将引用参数声明为常量数据的引用的理由有3条:

    1. 使用cosnt 可以避免无意中修改数据的编程错误
    2. 使用const 使函数能够处理const 和非const类型实参,否则只能接受非const 数据。
    3. 使用const 引用使函数能够正确生成并使用临时变量。

    引用非常适合用于结构和类。

     是否应使用引用的两个依据:程序员能够修改调用函数中的数据对象;通过传递引用而不是整个数据对象,可以提高程序的运行速度。

  • 相关阅读:
    Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)
    股市投资策略总结(转)
    php学习笔记--高级教程--读取文件、创建文件、写入文件
    史上最简单的Hibernate入门简单介绍
    Java中StringBuilder的清空方法比較
    DHCP Option 60 的理解
    ICMP报文分析
    软件測试自学指南---从入门到精通
    Qt多线程学习:创建多线程
    Bulk Insert命令具体
  • 原文地址:https://www.cnblogs.com/babysunnie/p/3198538.html
Copyright © 2011-2022 走看看