远象建设 网站wordpress5.0改进

张小明 2026/1/1 10:40:30
远象建设 网站,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进行投诉反馈,一经查实,立即删除!

任丘网站制作赣州人才网招聘网

Lottie动画深度优化:从文件瘦身到性能飞跃的技术实战 【免费下载链接】lottie-web 项目地址: https://gitcode.com/gh_mirrors/lot/lottie-web 还在为Lottie动画文件过大导致页面卡顿而困扰吗?本文将带你深入解析Lottie动画的内部结构&#xff0…

张小明 2026/1/1 10:39:22 网站建设

网站建设怎么分录网站在线优化检测

Linux 内核信号处理栈帧设置与上下文复制详解 1. 信号处理栈帧设置基础操作 在信号处理流程中,内核需要对栈帧进行一系列设置,以确保信号处理程序能够正确执行。首先,会将 0x 80 cd 复制到 retcode[] 的最后两个字节。由于 i386 是小端字节序,实际存储为 0x cd 80 …

张小明 2026/1/1 10:38:48 网站建设

合肥网站建设哪家好价格浙江恒炜建设网站

Escrcpy终极指南:免费图形化Android设备控制工具快速上手 【免费下载链接】escrcpy 📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱…

张小明 2026/1/1 10:38:13 网站建设

seo教程网站优化如何做商城网站

启动文件流程图:TC3xx系列MCU复位后会从Ifx_Ssw_Tc0.c文件的_START()函数开始启动,启动的时候都会从CPU0开始运行,直到在__StartUpSoftware_Phase6()函数中才会根据用户配置依次启动其他核。_START()_START()的地址由link文件中RESET决定&…

张小明 2026/1/1 10:37:03 网站建设

有个人做网站的济南网站建设熊掌号

Dockerfile编写示例:基于Miniconda-Python3.10定制专属AI镜像 在人工智能项目开发中,你是否曾遇到过这样的场景?同事发来一个模型训练脚本,你满怀期待地运行,结果却卡在“ModuleNotFoundError”上;或者好不…

张小明 2026/1/1 10:36:30 网站建设

wordpress修改地址后网站打不开wordpress栏目标题

量化交易回测系统入门指南:5步快速搭建专业回测环境 【免费下载链接】vnpy 基于Python的开源量化交易平台开发框架 项目地址: https://gitcode.com/vnpy/vnpy 想要进入量化交易领域却不知从何开始?vnpy量化交易平台为初学者提供了完整的回测解决方…

张小明 2026/1/1 10:35:56 网站建设