码迷,mamicode.com
首页 > 其他好文 > 详细

Ch2_4处理类型

时间:2016-04-10 12:54:48      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

处理类型

    

  • 类型别名
    • 传统的命名方法:
      • typedef double wages; //wages 是double 的同义词;
      • typedef wages base,*p;//base 是double 的同义词,p 是double *的同义词
    • 新标准——别名声明——using
      • using SI = Sales_item; //SI是Sales_item的同义词
      • 别名的使用:SI iemt; //等价于Sales_item item;
      • 注意与指针的用法:typedef char *pstring; //pstring 是char *的别名;
  • auto类型说明符
    • auto 一般会忽略顶层const!!!!!!
    • 一条声明语句只能有一个基本数据类型
    • 符号&、*只从属于某个声明符,而非基本数据类型的一本部分

对常量对象取地址是一种底层const;

 

const int b = 42;

        auto a1 = &b; //a1 是指向整数常量的常量指针

auto *a2 = &b; //a2 是指向整数常量的常量指针

                //两种定义都是相同,a2更具有可读性;

  • decltype类型指示符

auto的的作用能表达式的类型推断出要定义的变量的类型,并且能初始化;

decltype的作用只是推断出要定义变量的类型,不做该表达式的值初始化变量;

  • decltype 返回该变量的类型时包括顶层const和引用在内;(与auto不同)
  • decltype 的参数是一个左值:*p,得到是T&,T是*p所引用的类型;
  • decltype ((variable))的结果永远是引用,引用的类型时variable的类型相同;
  • decltype与auto指定类型的不同
    • 对于const:auto一般会忽略顶层const,decltype则不会;
    • 对于声明与初始化:使用auto时,声明与初始化必须同时进行,decltype可以仅仅是声明而不初始化;
    • 对于复合类型:* &

            待补充!

自定义数据类型

  • struct 定义类
    • 最好不要把对象的定义和类的定义放在一起;
  • 类数据成员初始化
    • C++ 新标准规定,可以为数据成员提供一个类内初始值,用于初始化数据成员。
  • 预处理的概述
    • 头文件保护符:#ifndef……#endif,防止重复包含;
    • 预处理变量无视c++语言关于作用域的规则;

Ch2_4处理类型

标签:

原文地址:http://www.cnblogs.com/linj2n/p/5373672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!