• 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不能赋值,必须初始化。

  • 相关阅读:
    栈的压入、弹出序列
    CSS min-height 属性
    ie6 png 透明的解决方法,大网站都在用
    div覆盖div DIV相互重叠如何解决
    div代码大全 DIV代码使用说明
    CSS中ul li居中的问题
    复选框单选框与文字对齐问题的研究与解决
    CSS利用filter/opacity实现背景透明
    什么是块级元素和内联级元素(二)
    网页上PNG透明图片的运用(ie6+滤镜)
  • 原文地址:https://www.cnblogs.com/xkxf/p/6359864.html
Copyright © 2020-2023  润新知