摘要: C++的四种类型转换之const_cast 前言 引用《Effective C++ 中文版第三版》中条款27 "尽量少做转型动作"中的一段话: C++规则的设计目标之一是,保证“类型错误”绝对不可能发生,理论上如果你的程序很“干净”的通过编译,就表示它并不企图在任何对象上执行任何不安全、无意义、愚蠢 阅读全文
posted @ 2023-06-14 22:24 imxiangzi 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 一. 函数描述:const_cast < type-id > ( expression )主要是用来去掉const属性,当然也可以加上const属性。主要是用前者,后者很少用。 去掉const属性:const_case<int*> (&num),常用,因为不能把一个const变量直接赋给一个非con 阅读全文
posted @ 2023-06-14 22:23 imxiangzi 阅读(246) 评论(0) 推荐(0) 编辑
摘要: const_cast转换运算符我们在RTTI和类型转换运算符中详细介绍过它的用法和使用场景,今天我们对其进一步了解一下。首先我们回忆一下它的作用和用法。 const_cast的基本使用const_cast运算符用于执行只有一种用途的类型转化,即改变const或volatile。 用法如下: cons 阅读全文
posted @ 2023-06-14 22:22 imxiangzi 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 顶层const&底层const: 普通变量没有底层顶层的区别; int const a == const int a 只有对应指针,引用才会有区别:指针常量->顶层const,指针本身不可被修改。 int * const b = &a,a既可以通过a = x来改变,也可以通过*b = x来改变,但不 阅读全文
posted @ 2023-06-14 22:21 imxiangzi 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 原文C++ const_cast用法 const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。 变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改。 用法:const_cast<t 阅读全文
posted @ 2023-06-14 22:01 imxiangzi 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 在复习C++过程中,遇到了“常量折叠”,突然很是困惑,清楚地记得当时的理解就是:可折叠的常量和宏一样。其实在慢慢写学习中,就会知道这样的理解未免有些片面。现在才真正的觉得,每次看的时候都会有不同的感受,我想知识的魅力就在于此。 当时的理解就可以用下面的程序看看: #define PI 3.14 in 阅读全文
posted @ 2023-06-14 21:50 imxiangzi 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 一,前言 有关C++语言的const常量的考察点:肯定是const常量的内存不是分配在read-only的存储区的,const常量的内存分配区是很普通的栈或者全局区域。也就是说const常量只是编译器在编译的时候做检查,根本不存在什么read-only的区域。 所以说C++的const常量和常量字符 阅读全文
posted @ 2023-06-14 21:50 imxiangzi 阅读(67) 评论(0) 推荐(0) 编辑