美文网首页
C++笔记(3)

C++笔记(3)

作者: 肉饼屋 | 来源:发表于2018-03-20 09:56 被阅读4次

弄个变量类别,C++能遇到的坑都比别人多

类型别名

  1. 还是那句话C++做什么事情都可以很多方法,连类型别名也是。
    typedef int wage;``using wage = int
  2. 在使用类型别名进行声明,不要尝试用原定义替换,例如typedef char *pstring;const pstring cstr=0;,cstr是个指向char的常量指针。如果用原定义替换就是const char *cstr那么cstr就是一个指向const char的指针

auto类型说明符

  1. 使用auto可以让编译器来推算变量的类型,但前提是变量有初始值,我想这个功能类似于一些动态语言的类型推算,只是auto依赖的是编译器
  2. 使用auto推算类型,会把顶层const忽略掉,所以如果要定义则需要手动添加const auto

decltype类型指示符

  1. decltype的功能跟上面的那个很像,但是差别在于不需要用表达式来初始化

  2. decltype不会去对变量的类型进行处理,例如不忽略顶层const和引用

  3. decltype使用变量,如果在变量上加括号得到的将是不一样的结果,因为加了括号,decltype就把变量认为是表达式,那么变量是一种可以作为赋值语句左值的特殊表达式,所以就会得到引用,例如decltype(i)和decltype((i))是不一样。

     int a = 3,b = 4;
     decltype(a) c = a;
     decltype((b)) d = a;
     ++c;
     ++d;
    

写这样的代码感觉就是自己跟自己玩捉迷藏,最后所有的变量都是4
部分文字来自《C++ Primer》


写于2015-01-08

相关文章

网友评论

      本文标题:C++笔记(3)

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