美文网首页
C++11:auto

C++11:auto

作者: fck_13 | 来源:发表于2020-01-12 23:10 被阅读0次

auto这个关键字在C++11之前就存在的,只不过当时它的含义是指明对象的存储期。这个用途在C++11中已经删除了,所以忽略这个就可以了。
C++11更改了auto的用途,使其类似于C#中的var。这可以说是一个令人激动的改变。最大的好处就是我们在生命对象的时候可以不必明确的指定它的类型了。

int i = 1;  //C++11 之前
auto i = 1; //C++11

std::chrono::time_point<std::chrono::high_resolution_clock> time_point = std::chrono::high_resolution_clock::now();  //C++11 之前
auto time_point = std::chrono::high_resolution_clock::now();  //C++11
//note:std::chrono 是在C++11才有的,这里也是为了说明 auto可以是声明表达式变得简单 

从上面的例子来看,auto是我们少写很多代码。
具体的讲一下auto的一些限制

  • 如果auto用于声明多个变量,推导出来的类型必须是匹配的。
auto i = 0, d = 0.0; //ill formed, i 是 int, d是double,两者并不匹配
auto i= 0, *p = &i; //auto被推导为 int
  • 不允许在同一个声明中既声明变量又声明函数
auto f()->int , i=0;
  • 由于auto之前的用法,也就是在本文一开始的时候讲的,所以要注意auto在C和C++中的区别。
auto int x;   //在C++98中是有效的,在C++11中是错误的
auto x;        //在C语言中是有效的,在C++中是无效的

相关文章

  • c++ 11~20 新特性速查

    持续更新中。。。 c++11 std::auto (c++11) raw string (c++11) std::...

  • C++11的类型推导详解

    auto & decltype 关于C++11新特性,最先提到的肯定是类型推导,C++11引入了auto和decl...

  • C++11中auto和decltype

    C++11中auto和decltype auto和decltype都是C++11中引进来用于自动推断类型的关键字,...

  • C++11新特性/语法糖

    C++11的语法糖 https://imzlp.me/posts/2441/ auto https://blog....

  • 阿里巴巴面试题基础篇 C++11

    ● 请问C++11有哪些新特性? 参考回答: C++11 最常用的新特性如下: auto关键字:编译器可以根据初始...

  • 关键字auto的前世今生-未完

    一. auto的前世今生 《C++Primer Plus》中这样描述auto 在C语言和C++11版本之前的C++...

  • C++11:auto

    auto这个关键字在C++11之前就存在的,只不过当时它的含义是指明对象的存储期。这个用途在C++11中已经删除了...

  • c++11 auto

    auto现在成了一个类型的占位符,通知编译器去根据初始化代码推断所声明变量的真实类型。 使用auto会拖慢c++效...

  • 2018-09-26

    命名空间 auto(since C++11) 引用c++==(附注:java里的变量都是reference)== ...

  • [C++从入门到放弃] 通过使用auto完成类型自动推导以及Ra

    一、以auto完成类型自动推导 1、auto的使用场景 在C++11中允许声明一个变量或者对象(object)而不...

网友评论

      本文标题:C++11:auto

      本文链接:https://www.haomeiwen.com/subject/pvgiactx.html