zoukankan      html  css  js  c++  java
  • C++引用变量(转)

    引用变量
    c++中引用变量的使用:

    定义:

    int rate=80; 

    int  & pt=rate

    1.pt 是引用变量,申明引用变量时必须将其初始化.pt 和rate 的值指向相同的内存变量. 引用的最多用处就是作为函数的参数(结构和对象).通过引用变量作参数可以是函数使用原始数据.而不是拷贝.

    2.引用的特点更接近于const 指针,一旦与某个变量关联起来就将一直效忠于它,可以通过初始化来设置引用,但是不能通过赋值来设置

    int other=30; 

    pt=other   ;

    此时,rate的值和 pt的值都改为了30 但是地址还是原来rate的地址.而不是other的地址.

    3.如果程序不想改变传递给它的信息,但是又想使用引用,那么则应该使用常量引用

       int  test(const int & p)  // 当改变p值是,编译器将生成错去消息

    4.如果实参和应用参数不匹配,c++将为此产生临时变量,这个只有在参数为const 引用时才允许这么做,在下列情况下生成临时变量,并且函数参数将引用该变量.

    ****当参数不是const引用时,如果不是左值(又无法生成临时变量)将导致编译错误*****(强调了第三点,即尽量用const)

         .实参的类型正确,但是不是左值

         .实参类型不正确,但是可以转化为正确类型

    左值概念:除了字面常量和包含多项式的表达式可以被引用的数据对象

    5.尽量将函数返回的引用声明为const,避免你通过返回的引用而修改它的值.返回引用其实是返回被引用变量的别名

        const  sysop & use(sysop & pref)

        sysop pref={}; 

       sysop test=use(pref);

    相当于

       user(pref);

       test=pref;

    6.继承的特征就是基类的引用可以指向派生类对象,而无需强制类型转化.这种好处是可以定义一个接受基类引用座位参数的函数,调用函数是既可以将基类对象作为参数,也可以将派生类作为参数


    使用原则:

    对于按值传递而不修改的函数时:

    .数据对象小,按值传递

    .数据对象是数组,则定义const 的指针

    .如果数据对象为较大的结构,则可以使用const 指针或者cosnt 引用 ,

      .如果是类对象,则使用const 引用.

    对于修改值的函数

       .如果是内置数据,则使用指针

       .数组,也只能使用指针

       .结构 使用指针或者引用

       .对象.使用引用
  • 相关阅读:
    华章IT图书书讯(2011年第8期)
    iPhone游戏开发实践指南
    【北京讲座】Android系统Framework层源码分析(2011.09.24)
    深入理解Android
    你学或不学,Java就在那里,不离不弃
    近百本精品图书全部免费赠送——仅面向学生
    极限编程(Extreme Programming, XP)
    对任何希望深入理解C#的程序员来说,这本书都是不容错过的经典书籍
    C# 文件操作(转)
    一些数据格式化Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法
  • 原文地址:https://www.cnblogs.com/sage-blog/p/4028816.html
Copyright © 2011-2022 走看看