zoukankan      html  css  js  c++  java
  • c++第八天

    《c++ primer, 5E》第53页到第58页,笔记:

    1、非常量引用一定不能绑定const对象。例 const int ci = 1024; const int &r1 = ci;

    2、常量引用不一定要绑定const对象。例 int i = 42; const int &r1 = i;

    常量引用类似于对象的持有者,限制对所持对象的操作。

    3、区分 pointer to const 和 const pointer 声明方式的区别。(从右向左读)

    4、其实上面的内容用 【顶层const】 和 【底层const】就很容易理解,

    底层const针对指向常量的指针, 指针本身可以改变值,但必须指向常量。

    必须具有相同的底层const资格才可以执行拷贝操作。

    顶层const的值无法改变,但是可以作为字面值来使用。

    遇到的问题:不理解【默认状态下, const对象仅在文件内有效】

    课后练习:

    练习 2.26

    a不合法,const对象必须初始化 b合法

    c合法,cnt的常量特征仅仅在执行改变ci的操作时才会发挥作用

    d不合法


    练习 2.27

    只有a和f非法

    (a)int i = -1, &r = 0;

    非法, 非常量引用的初始值必须是一个对象

    (b)int *const p2 = &i2;

    合法。const pointer

    (c)const int i = -1, &r = 0;

    合法, 常量引用可以绑定字面值, 一般表达式

    (d) 合法

    (e) 合法

    (f) 非法

    (g) 合法

    练习 2.28

    从右向左读法

    a. 不合法。 cp首先是一个常量, 未初始化

    b. 不合法。 p2首先是一个常量, 必须初始化

    c. 不合法。 ic未初始化

    d. 不合法。 p3未初始化

    e. 合法。 p是一个指向常量的指针,而非常量

    练习 2.29

    a. 合法

    b. 不合法。p3 是一个指向常量的常量指针, p1是指向变量的指针, 如果合法,就会扩大常量的操作范围

    c. 不合法。变量指针无法持有常量

    d. 不合法。无法改变常量的值

    e. 不合法。无法改变常量的值

    f. 不合法。无法改变常量的值

    练习 2.30

    从左到右:

    v2 顶层常量, v1 无层变量,p1 无层变量, r1 对v1的引用

    p2 底层常量, p3 顶层常量, r2 既是顶层 const 也是底层 const

    练习 2.31

    mdzz 这题不做了, 总之就是, 具有相同底层资格才能赋值,

    顶层const不能赋值,必须初始化。

  • 相关阅读:
    eclipse中常用快捷键
    js sort排序
    js parseInt函数
    Jquery常用方法
    jquery的call()和apply()方法
    Jquery中的事件命名机制
    CSS层叠样式表
    推荐博客园中好的博客主
    页面刷新或者子窗体刷新父窗体,不提示 "重试或取消”对话框
    FullCalendar日历插件使用说明
  • 原文地址:https://www.cnblogs.com/xkxf/p/6359864.html
Copyright © 2011-2022 走看看