随笔分类 -  c++

摘要:C++的四种类型转换之const_cast 前言 引用《Effective C++ 中文版第三版》中条款27 "尽量少做转型动作"中的一段话: C++规则的设计目标之一是,保证“类型错误”绝对不可能发生,理论上如果你的程序很“干净”的通过编译,就表示它并不企图在任何对象上执行任何不安全、无意义、愚蠢 阅读全文
posted @ 2023-06-14 22:24 imxiangzi 阅读(391) 评论(0) 推荐(0) 编辑
摘要:一. 函数描述:const_cast < type-id > ( expression )主要是用来去掉const属性,当然也可以加上const属性。主要是用前者,后者很少用。 去掉const属性:const_case<int*> (&num),常用,因为不能把一个const变量直接赋给一个非con 阅读全文
posted @ 2023-06-14 22:23 imxiangzi 阅读(265) 评论(0) 推荐(0) 编辑
摘要:const_cast转换运算符我们在RTTI和类型转换运算符中详细介绍过它的用法和使用场景,今天我们对其进一步了解一下。首先我们回忆一下它的作用和用法。 const_cast的基本使用const_cast运算符用于执行只有一种用途的类型转化,即改变const或volatile。 用法如下: cons 阅读全文
posted @ 2023-06-14 22:22 imxiangzi 阅读(68) 评论(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 阅读(160) 评论(0) 推荐(0) 编辑
摘要:原文C++ const_cast用法 const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。 变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改。 用法:const_cast<t 阅读全文
posted @ 2023-06-14 22:01 imxiangzi 阅读(53) 评论(0) 推荐(0) 编辑
摘要:在复习C++过程中,遇到了“常量折叠”,突然很是困惑,清楚地记得当时的理解就是:可折叠的常量和宏一样。其实在慢慢写学习中,就会知道这样的理解未免有些片面。现在才真正的觉得,每次看的时候都会有不同的感受,我想知识的魅力就在于此。 当时的理解就可以用下面的程序看看: #define PI 3.14 in 阅读全文
posted @ 2023-06-14 21:50 imxiangzi 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一,前言 有关C++语言的const常量的考察点:肯定是const常量的内存不是分配在read-only的存储区的,const常量的内存分配区是很普通的栈或者全局区域。也就是说const常量只是编译器在编译的时候做检查,根本不存在什么read-only的区域。 所以说C++的const常量和常量字符 阅读全文
posted @ 2023-06-14 21:50 imxiangzi 阅读(81) 评论(0) 推荐(0) 编辑
摘要:关于C++中地址值打印出来为1的情况;以下是测试代码: #include <iostream>#include <iomanip> using namespace std; int main(){ const volatile int a = 10; cout << &a <<endl; int * 阅读全文
posted @ 2023-06-13 09:41 imxiangzi 阅读(69) 评论(0) 推荐(0) 编辑
摘要:内联(inline) 内联函数以牺牲源文件大小为代价减小程序运行的时间,内联函数类似于一种编译器控制的复制/粘贴功能,当一个函数内部逻辑执行的消耗要远小于函数调用本身的消耗时,会额外增加栈空间的消耗,而被标记为内联的函数,编译器会直接将函数的定义“粘贴”到代码的调用处,直接在调用处将代码展开,这样就 阅读全文
posted @ 2023-05-16 18:04 imxiangzi 阅读(68) 评论(0) 推荐(0) 编辑
摘要:什么是表达式(表达式的定义)?表达式是C语言的重要语法成分,不过对于表达式的定义,好像从来没有人关注过。今天就孔乙己一把吧,哈哈。先贴标准对expression的定义(ISO/IEC 9899:2011 6.5): An expression is a sequence of operators a 阅读全文
posted @ 2023-05-16 18:04 imxiangzi 阅读(479) 评论(0) 推荐(0) 编辑
摘要:表达式:表达式是运算符、常量和变量的组合。一个表达式可以由一个或多个操作数和零个或多个运算符组成以产生一个值。 例子: a+b C s-1/7*f . . ETC 表达式类型: 表达式可以是以下类型: 常量表达式:常量表达式仅包含常量值。恒定值是不变的值。例子: 5, 10 + 5 / 6.0, ' 阅读全文
posted @ 2023-05-16 18:03 imxiangzi 阅读(1296) 评论(0) 推荐(0) 编辑
摘要:目录 API包装器模式 代理模式 代理模式 vs Impl惯用法 代理模式的简单实现 代理模式应用场景 适配器模式 适配器模式 vs 代理模式 适配器模式简单实现 适配器模式优点 外观模式 外观模式 vs 适配器模式 外观模式的简单实现 外观模式优点 参考 API包装器模式 通常,需要编写基于另一组 阅读全文
posted @ 2023-05-08 11:04 imxiangzi 阅读(114) 评论(0) 推荐(0) 编辑
摘要:C++ Puzzles★1.有如下代码,问:ptr指向了谁?能通过ptr调用Derived类重写的函数吗(即多态还起作用吗)?dynamic_cast到底是什么作用?ptr2与ptr性质是一样的吗? Derived* derived = new Derived();Base *ptr = dynam 阅读全文
posted @ 2023-03-08 13:23 imxiangzi 阅读(193) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示