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

网站建设主要学什么南宁网络推广热线

网站建设主要学什么,南宁网络推广热线,常州网站建站公司,苏州网站网络营销推广系列文章目录 C11新特性使用详解-持续更新 文章目录 系列文章目录前言一、auto关键字1.根据变量的初始化表达式来推导变量的类型2.const与引用 二、decltype关键字1.推断表达式的类型2.const与引用 三、总结 前言 auto和decltype是C11引入的俩个重要的新关键字,用…

系列文章目录

C++11新特性使用详解-持续更新


文章目录

    • 系列文章目录
    • 前言
    • 一、auto关键字
      • 1.根据变量的初始化表达式来推导变量的类型
      • 2.const与引用
    • 二、decltype关键字
      • 1.推断表达式的类型
      • 2.const与引用
    • 三、总结


前言

auto和decltype是C++11引入的俩个重要的新关键字,用于在编译期自动推导出变量或表达式的类型。极大提高代码的可读性和简洁性,并且有助于减少类型转换错误。


一、auto关键字

编程时常常需要把表达式的值赋给变量,这就要求变量申明时必须清楚知道表达式的类型。做到这点不容易或者根本做不到。为了解决这个问题,C++11引入auto关键字让编译器自动推导变量的类型。

1.根据变量的初始化表达式来推导变量的类型

auto a = 1; // a的类型为int  
auto b = 5.20; // b的类型为double  
auto c = "auto"; // c的类型为const char[6]  
auto person1 = Person(); // person1的类型为Person,并且自动初始化成员变量变量
auto person2 = Person{ "Fei", 30 }; // person2的类型为Person,并且根据指定的初始值初始化成员变量变量std::vector<int> vec = { 1, 2, 3, 4, 5 };
for (auto it = vec.begin(); it != vec.end(); ++it) {   // 在for循环中使用auto推导类型std::cout << *it << " ";
}

2.const与引用

使用引用其实是使用引用的对象。特别是当引用被当作初始值时,正在参与初始化的是引用对象的值。此时编译器以引用对象的类型作为auto的类型。

int i = 10, &r = i;
auto aa = r;  //推导出aa类型是int:r是i的别名,i是int(正在参与初始化的是引用对象的值,以引用对象的值作为auto的类型)//auto一般会忽略顶层const,同时底层const则会被保留
const int ci = i, &cr = ci;
auto bb = ci;  //推导出bb类型是int(ci的顶层const特性被忽略了)
auto cc = cr;  //推导出cc类型是int(cr是ci的别名,ci本身是一个顶层const)
auto dd = &i;  //推导出cc类型是int*
auto ee = &ci;  //推导出cc类型是const int*(对常量对象取地址是一种底层const)//如果希望auto推断出来的类型是一个顶层的const,需要明确指出
const auto ff = ci;  //推导出b类型是int//设置类型为auto的引用是,初始值中的顶层常量属性任然保留
auto &gg = ci;  //推导出b类型是const int&

二、decltype关键字

希望从表达式的类型中推导除要定义的变量的类型,但是不想用该表达式的值初始化变量。为了满足这各要求,C++11引入decltype关键字让编译器自动推导表达式的类型,而不用计算表达式的值。

1.推断表达式的类型

int x = 10;
decltype(x) y;    //y的类型是intdouble foo();
decltype(foo()) z;  //z的类型是double,根据函数返回值类型推导

2.const与引用

decltype处理顶层const和引用的方法和auto不同。
如果表达式是一个引用类型,decltype会去除引用,推导出引用所引用的类型。
例如,对于表达式int& x, decltype(x)的推导结果是int,去除了引用。

需要注意的是,decltype推导出的类型会保留顶层const限定符和volatile限定符,不会去除它们。

const int cii = 10, &cjj = cii;
decltype(cjj) xx = 0;   //x的类型是const int&
decltype(cjj) yy = xx;   //x的类型是const int&,y绑定到x
//decltype(cjj) zz;  //错误: z是个引用,必须初始化int xxx = 0;
decltype(xxx) pp = 0;

三、总结

在不影响代码可读性的前提下可以尽可能的使用auto。复杂类型用auto,但是简单内置类型就没有必要使用auto了。总之避免过度使用auto和decltype,以保持代码的可读性和维护性。

http://www.dt0577.cn/news/4212.html

相关文章:

  • php网站代做社区营销
  • 免费的crm软件免费seo关键词优化排名
  • 微企点建好网站后要怎么做郑州seo顾问外包
  • 做包装用哪个网站汕头seo网络推广服务
  • vue适合什么网站开发优化服务平台
  • 怎样做网站制作团队备案查询
  • 河北建设厅网站设置营销策划的十个步骤
  • 成都旅游网站建设南宁seo排名外包
  • 内蒙古做网站的公司有哪些网站seo推广哪家值得信赖
  • 正规的佛山网站建设ai智能营销系统
  • 佛山用户网站建设现在最火的推广平台有哪些
  • 微商城网站建设代理商企业网络营销推广方案策划
  • 威海做网站公司哪家好江苏搜索引擎优化
  • 个人网站网页制作湘潭网站设计
  • 网站建设 方案书什么推广方式能快速引流
  • 怎么用txt做网站2021年新闻摘抄
  • 如何做好网站seo互联网营销师国家职业技能标准
  • 网站文字很少怎么做优化深圳全网推广效果如何
  • 青岛网站制作选ls15227seo线上培训班
  • 视觉设计评价标准的要素seo如何进行优化
  • 在东营怎么建网站网站推广工具
  • 电子商务网站开发公司网站平台搭建
  • 福州市网站建设销售网络平台推广
  • 怎么在云主机上做网站最新病毒感染
  • 网站开发公司 logo网站营销方案模板
  • 苹果手机做微电影网站有哪些内容培训机构退费法律规定
  • 为什么做网站最近一周新闻大事
  • 给公司网站做seo的好处石家庄seo排名公司
  • 武汉营销型网站设计网站seo推广员招聘
  • 有数据库的网站厦门人才网唯一官方网站