当前位置: 首页 > news >正文

怀柔石家庄网站建设彩页设计多少钱

怀柔石家庄网站建设,彩页设计多少钱,ui设计培训内容,建设网站申请书文章目录const/constexpr[^1]const 与 宏const 与 类const 与 指针const 其他constexpr (C11之后)referenceconst/constexpr1 尽可能的使用constexpr对于不变的变量#xff0c;尽量用const修饰 const 与 宏 const vs define的比较#xff1a;define只是字符的替换#xf… 文章目录const/constexpr[^1]const 与 宏const 与 类const 与 指针const 其他constexpr (C11之后)referenceconst/constexpr1 尽可能的使用constexpr对于不变的变量尽量用const修饰 const 与 宏 const vs define的比较define只是字符的替换没有类型方面的约束而const修饰的变量可以防止窜改与保持类型安全。 所以一般推荐多用const定义常量而不是用宏。const修饰变量必须初始化表示常量则不可改变没有初始化则没有意义知乎博文描述const放在data只读区域不过也不是绝对的有的时间统计优化等级开的高也不取地址可能会优化成立即数在.text段中。 const 与 类 1. 修饰类变量-对象则只能调用const 函数 不能调用非const函数 除非在成员变量前面添加mutable 显性指明可变。2. 修饰类中成员变量必须在初始化列表中进行初始化3. 静态常量和普通常量类似 推荐放到类外在相应的.cc/.cpp源文件中进行初始化4. 修饰成员函数表示函数中成员变量不可被改变可以被const 对象调用也可以被普通对象调用但是这种函数中不能调用非const类型的函数。 // test.h class Test {public:Test(int var): const_var_(var) {} // 2. 修饰类中成员变量const int GetVarible() const { return const_var_;} // 4. 修饰成员函数void SetVariable(int var) { mutable_var_ var; }mutable int mutable_var_;static const int static_const_var_; // 3. 静态常量和普通常量类似private:const int const_var_; // 2. 修饰类中成员变量 };// test.cc static const int Test::static_const_var_ 0;const Test test(0); // 1. 修饰类变量-对象 test.GetValue(); // 1. 修饰类变量-对象 test.mutable_var_ 200;const 与 指针 1. 指针常量指向的内容是常量内容不可变但是指针可变2. 常量指针指针为常量指针不可变但是内容可变3. 常量指针常量指针和内容都是常量都不可变区分哪个是常量的记忆秘诀const 离哪个量近就是修饰哪个 如下所示var_1var_2 就是const与char类型近所以常量是对char类型的也就是内容来约定的 而var_3是 const与 var_3近又因为var_3是 指针变量所以const修饰的是指针。 const char * var_1; // 1. 指针常量 char const * var_2; // 1. 指针常量 char * const var_3; // 2. 常量指针 const char * const var_4; // 3. 常量指针常量const 其他 const 与 引用 内容不可更改且没有copy开销。 一般参数传递时推荐的写法。const 转换 非const转const 很方便但是const 转非const也就是remove const是麻烦的一般不支持隐式转换。可以考虑用remove_const推荐使用const_cast来实现。 // 注意用模板的机制实现remove const操作 templatetypename T struct remove_const {typedef T Type; };templatetypename T struct remove_constconst T // 点睛之笔 {typedef T Type; };templatetypename T using RemoveConstT typename remove_constT::Type;顶层const: 修饰的对象本身不能改变如const变量指针常量等底层const修饰的指针或者引用的对象不能改变 本身可以改变但是所指内容不可以改变如 常量指针。 这种const只能用const_cast方式移除但是有风险。 constexpr (C11之后) 【在编译期间就能完成执行的代码就最好改为constexpr描述 这样能提升运气期间的性能因为编译期间已经确定了表达式的值不用在运行期间再执行表达式】所以尽可能的使用constexpr 修饰表达式如果一个常量表达式能在编译阶段确定那么就需要设置为constexpr 另外如果我们想让一个表达式在编译期间就能得到值那么我们也需要设置成constexpr。把它放到变量定义前那么用来初始化这个变量的表达式「必须」是常量表达式。修饰对象 对象是const的对象需要编译期间确定。修饰函数如果不能在编译时期计算出来那么constexpr修饰的函数就和普通函数一样了 如果能就是一个const 常量存于代码中用于运行时使用。检测constexpr函数是否产生编译时期值的方法很简单就是利用std::array需要编译期常值才能编译通过的小技巧。这样的话即可检测你所写的函数是否真的产生编译期常值了。constexpr与virtual功能上正好相反 constexpr int GetNumber() {...}const int num GetNumber(); // 如果GetNumber是个模板递归那么需要在编译期间确定值那么就需要将const改为constexpr constexpr int num GetNumber(); // 则编译期间能确定num的值在实际规范地使用用时一般把能在编译期确定的表达式或函数定义为constexpr且变量名kVariable方式定义表示一种常量。而运行期间的定义为const。 reference 参考知乎博文 ↩︎
http://www.dnsts.com.cn/news/253159.html

相关文章:

  • 公司网站后台模板广元建设厅官方网站
  • 我的文档上传到网站 做链接连云港网站建设费用
  • 如何填写网站建设计划表网站加载不出来是什么原因
  • ps做网站广告logo找竞价托管公司
  • 我要建网站需要什么花瓣网网站模板
  • 网站常见问题是什么企业名录是什么
  • 牡丹江商城网站开发设计网站推广联盟
  • 毕业设计做视频网站设计上海做网站seo
  • 酷炫flash网站可以做微积分的网站
  • 安徽建设工程造价信息网站网站没有在工信部备案
  • 在线网站免费网站入口台州城乡建设规划网站
  • 上海建站模板源码wordpress控制台地址
  • 网站建设用到什么学软件去哪个培训机构
  • 广州建设六马路小学网站北京的软件公司集中在哪个区
  • 织梦网站文章发布信息模板下载google 网站收录
  • 个人做网络推广哪个网站好网站的ip地址是什么
  • 单页网站怎么优化网站建设实用教程
  • 国外网站开发现状百度网站结构
  • 羊毛网站建设视频wordpress文库主题
  • 可以做多边形背景的网站装饰公司logo图标图片
  • 广告毕业设计作品网站沈阳软件定制开发公司
  • 建站平台外贸无锡做网站排名
  • 万州网站制作公司wordpress修改网站地址
  • 那个网站做二手买卖的网站备案成功后可以改吗
  • 越秀网站建设做好直播运营必备的五大能力
  • 四川建设厅网站 蒋wordpress免登录发文章
  • 让人做网站需要注意什么条件域名续费一般多少钱一年
  • 哪个网站有做视频转场的素材国内优秀网站案例
  • 扬中网站推广导流网站域名过期后续费多长时间生效
  • 万州网站制作一个人怎么做网站