远象建设 网站wordpress5.0改进

张小明 2026/1/16 15:45:41
远象建设 网站,wordpress5.0改进,wordpress企业站手机客户端,做网站公司排名目录 1. const的本质#xff1a;将编译器当作你的朋友去维护一个常量 2. 指针的const 3. 迭代器的const 4. 用const减少调用错误 5. const成员函数 6. bitewise观点 7. 修正#xff1a;mutable 8. Const和非const写法归一 详细解析 可以const调用非const吗#xf…目录1. const的本质将编译器当作你的朋友去维护一个常量2. 指针的const3. 迭代器的const4. 用const减少调用错误5. const成员函数6. bitewise观点7. 修正mutable8. Const和非const写法归一详细解析可以const调用非const吗1. const的本质将编译器当作你的朋友去维护一个常量2. 指针的constconst char *str1 hello; str1 ttt; // 可以改变指针指向在上面的代码中const仅仅为保证str1指向的字符不被改变但是我们可以将str1指向的内容改变。char str[] hello; char* const str2 str; str2[0] a; // 可以修改内容上面代码中的const只能维持str2指向不变但是内容可以改变。因此我们要将两个const结合const char* const str3 hello;尽可能保证常量不被改变。在这过程中将const作为让编译器维护常量的口令将编译器当作你的朋友。但是这一方案也并非天衣无缝远古版本c在下面会提到3. 迭代器的const由于迭代器是基于指针的也就同理意味着有两种类型的constconst iterator和const_iterator。const iterator相当于char* constT* const指向不可变const_iterator相当于const char*const T*内容不可变4. 用const减少调用错误class A { public: A(const int a 1) :_a(a) { } A operator*(const A aa) { A ret(_a * aa._a); return ret; } A operator(const A aa) { _a aa._a; return *this; } bool operator(const A aa) const { return _a aa._a; } operator bool() { return _a ! 0; } private: int _a; }; A a(1); A b(2); A c(3);在这样一个类中如果误将if (b c)写成if (b c)那么你是不会察觉的。但如果加上const那么就会报错。5. const成员函数在类的函数后加上const有两个作用让函数做什么更加容易理解可以传const对象6. bitewise观点首先假设有一座房子坏没坏有种标准。bitewise观点就是只要房子外壳还是一样的但是里面怎么坏都无所谓。这就是编译器对于const的理解只要这块内存不动至于内存怎么变无所谓。这样就会发生神奇的事远古版本cconst char* const str hello; char* s str[0]; s[0] a; cout str endl;注意由于书本是比较老的现在即便是c98编译也会报错但是由于是书中的例子就讲究看一下吧同时对于缓存我们可能需要微小改动里面的值即使改变了也依旧认为是const。因此也有bitewise观点认为错误但我们需要的情况。7. 修正mutable在第六点我们发现bitewise观点很多时候并不能完全胜任因此就需要修正有可能我们在const函数中也需要修改值加上mutable就可以了。class A { public: A(int a, int b) :_a(a) ,_b(b) { } int getb() { _b 100; return _b; } private: int _a; mutable int _b; };这就是logical constness观点。8. Const和非const写法归一比如[]的重载const函数和非const函数绝大多数代码都是一样的因此能否复用呢可以用非const复用const。namespace bit { class string { public: string(const char* str ) { _size strlen(str); _capacity _size; _str new char[_capacity 1]; strcpy(_str, str); } char operator[](size_t pos) { assert(pos _size); assert(pos); return _str[pos]; } const char operator[](size_t pos) const { assert(pos _size); assert(pos); return _str[pos]; } ~string() { if (_str) { delete[] _str; _str nullptr; _size 0; _capacity 0; } } private: char* _str nullptr; size_t _capacity 0; size_t _size 0; static const size_t npos -1; }; }上面是简易的string类。将char operator[](size_t pos)改为以下代码char operator[](size_t pos) { return const_castchar( static_castconst bit::string(*this) [pos] ); }详细解析static_castconst bit::string(*this)其中static_cast为c的安全转换将*this转为const bit::string的引用。[pos]调用[]重载返回const char调用const版本的operator[]。const_castcharconst_cast将常性去掉转为char引用。可以看到代码繁琐冗长因此要权衡代码可读性与简洁性。可以const调用非const吗理论可以但是调用非const就意味着需要冒着被改变的风险。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设项目表wordpress 插件 ftp

论文新手写作工具:9大AI工具推荐步骤指南排名 工具核心特点速览 工具名称 效率评分 核心功能 适用场景 aibiye ⭐⭐⭐⭐ AIGC降重查重 AI生成内容优化 aicheck ⭐⭐⭐⭐ 论文查重降重 初稿快速处理 askpaper ⭐⭐⭐⭐⭐ 学术问答降AIGC 深度学术优化…

张小明 2026/1/7 20:50:19 网站建设

哪个网站做外单出口好创意设计公司官网

当你对着“本文认为”后面那片空白发呆时,别慌——你缺的不是想法,而是一个能把灵光一闪,孵化成坚实论点的智能伙伴。你是否经历过这种学术“鬼打墙”?脑子里有个模糊的直觉,落到纸上却成了干瘪的“我认为这很重要”。…

张小明 2026/1/7 20:45:29 网站建设

淘宝天猫优惠券网站建设费用怎样看网站建设制作方

物联网设备架构与安全技术深度解析 在智能制造、智慧零售和城市数字化转型的浪潮中,物联网已不再只是“连接万物”的基础设施,而是逐步演进为具备感知、决策与表达能力的智能体。尤其当生成式AI开始渗透到边缘终端,系统的角色正在发生根本性转…

张小明 2026/1/7 20:45:31 网站建设

婺源做网站有吗职工素质建设 网站

📱 AutoGLM: 让你的旧安卓手机秒变 AI 代理!🚀 本文将为您提供一份“保姆级”指南,详细介绍如何安装、配置并使用 Open-AutoGLM,将您的安卓手机(Android 7.0)轻松变为一个强大的 AI 代理。 1️…

张小明 2026/1/7 20:45:30 网站建设

网站被k多久可以恢复软件技术属于什么学类

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 基于Papers With Code上最新的图像分割论文《XXX》,使用快马平台自动生成PyTorch实现代码。要求包含数据预处理、模型定义、训练循环和评估模块,支持常见数据…

张小明 2026/1/14 14:31:43 网站建设

如何设置网站公司动态四川省城乡建设厅网站

简介在当今的嵌入式系统和实时系统开发中,进程间通信(IPC)是实现高效数据交互的关键技术。随着人工智能和图像处理技术的飞速发展,实时图像传输的需求日益增长。传统的基于Socket的通信方式虽然通用性强,但在实时性和效…

张小明 2026/1/12 14:50:21 网站建设