2.5.1 类型别名(Type Alias)

typedef

  • 语法

    typedef double wages;   //wages 是 double的别名
    typedef char * pstring; //ptring 是 char *的别名
  • 注意点:const修饰符修饰指针本身

    const pstring p = &c; //此处的const修饰指针,是一个"Top-Level const",即p不能改变指向的对象
    const char *p; //此处的const修饰char,是一个”Low-Level const",无法通过p改变指向对象的值

using

  • 语法

    using wages = double;
    using ptring = char *;
  • 注意点:同上

2.5.2 auto类型说明符

基本说明

auto a = 0;

  • auto会给a赋予右值的数据类型:可以理解为auto被替换为了右值的类型

  • auto变量必须初始化

  • 定义多变量时,各变量的定义(definition)中的基本类型(the base type)部分要一致

    int a = 0;
    auto i = a, p = 3.14; //auto的类型不一致

注意点

  • 顶层const被忽略,底层const会保留

  • 变量定义的一般规则仍然生效

2.5.3 decltype类型说明符

基本说明

const int ci = 0, &cj = ci;
decltype(ci) x = 0; //x为const int
decltype(cj) y = x; //y为const int的引用
decltype(ci) z; //error:z未初始化!!
  • decltype作用同auto
  • decltype变量必须初始化

注意点

  • decltype会精确地反映右值的类型,无论是顶层const还是底层const都会保留

  • decltypde(引用)时,返回的是引用的类型,而不是引用绑定的对象的类型

  • 拓展

2-5 C++ 类型别名与自动类型的更多相关文章

  1. mybatis由浅入深day01_6SqlMapConfig.xml(6.2settings全局参数配置_6.3typeAliases(类型别名)_6.4typeHandlers(类型处理器)_6.5mappers(映射配置))

    6 SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下: properties(属性) settings(全局配置参数) typeAli ...

  2. 04_Swift2基础之类型安全和类型推测+字面量+类型别名

    1. 类型安全和类型推测 1> 类型安全 Swift 是一个 _类型安全(type safe)_ 的语言.类型安全的语言可以让你清楚地知道代码要处理的值的类型.如果你的代码需要一个`String ...

  3. Go类型别名与类型定义区别

    类型别名和自定义类型区别 自定义类型 //自定义类型是定义了一个全新的类型 //将MyInt定义为int类型 type MyInt int 类型别名 //类型别名规定:TypeAlias只是Type的 ...

  4. C++ 自动类型推断

    C++语言提供了自动类型推断的机制,用于简化代码书写,这是一种很不错的特性,使用auto和decltype都可以完成自动类型推断的工作,而且都工作在编译期,这表示在运行时不会有任何的性能损耗. 一.a ...

  5. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

  6. mybatis类型别名

    在mybatis中,statement的parameterType指定了输入参数的类型,resultType指定了输出结果的映射类型可以针对parameterType或resultType中指定的类型 ...

  7. springMVC注解@initbinder日期类型的属性自动转换

    在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...

  8. mybatis中自建的类型别名

    在使用mybatis过程中经常用到类型别名,除了我们自己新建的别名外,mybatis还自带了很多类型别名和java中的类型的映射,下面先看一个自建的别名的配置 <typeAliases> ...

  9. c++学习笔记2--constexpr,类型别名,auto

    constexpr:修饰常量表达式,约定修饰对象不仅为常量,而且在编译阶段就能得到值. 与const不同的是,constexpr约束的是当事人,就是说,constexpr int *a=1;这样的语句 ...

  10. C++11新特性:自动类型推断和类型获取

    声明:本文是在Alex Allain的文章http://www.cprogramming.com/c++11/c++11-auto-decltype-return-value-after-functi ...

随机推荐

  1. 9. 从0学ARM Cortex-A9 LED汇编、C语言驱动编写

    0. 前言 一般我们购买一个开发板,厂家都会给出对应的电路图文件,我们可以通过搜索对应名称来查找到对应的外设.对于驱动工程师来说,我们只需要知道外设与SOC交互的一些数据线和信号线即可. 用主控芯片控 ...

  2. 《黑神话:悟空》神话再现,虚幻引擎与Unity/C#谁更强?

    前言 在国产游戏领域,<黑神话:悟空>无疑是一颗耀眼的明星,以独特的艺术风格.深厚的文化底蕴以及卓越的技术表现,赢得了国内外玩家的广泛关注.然而,在这款游戏光鲜亮丽的背后,是我们开发者对技 ...

  3. Diskpart 操作

    DiskPart 是 Windows 操作系统中的一个命令行工具,用于管理磁盘分区.它可以创建.删除.格式化和调整分区大小,还可以设置活动分区等.以下是一些常用的 DiskPart 命令和操作步骤. ...

  4. 编译 Qt 项目

    参考:Qt 编程指南 一个最小化工作示例:qt-minimal | GitHub 源文件 main.cpp #include <QApplication> #include <QLa ...

  5. 西瓜杯 WP

    RE 一个西瓜切两半你一半我一半 有点谜语,文本给的是输出和key # Visit https://www.lddgo.net/string/pyc-compile-decompile for mor ...

  6. 全网最适合入门的面向对象编程教程:44 Python内置函数与魔法方法-重写内置类型的魔法方法

    全网最适合入门的面向对象编程教程:44 Python 内置函数与魔法方法-重写内置类型的魔法方法 摘要: 在 Python 中,内置类型的行为是通过一组特殊的"魔法方法"来实现的, ...

  7. 【YashanDB知识库】自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found

    问题现象 使用如下的sql语句创建自关联外键表: drop table self_f_key; create table self_f_key(t1 number primary key not nu ...

  8. Python 串口

    ref: https://www.cnblogs.com/zhicungaoyuan-mingzhi/p/12303229.html

  9. 物体检测序列之一:NMS

    IoU (Intersection over Union),交并比,是衡量物体检测模型在特定数据集上检测效果好坏的一个常用的标准,通常情况下,想要通过IoU来衡量物体检测模型好坏需要具备以下几点: 1 ...

  10. RxJS 系列 – Mathematical and Aggregate Operators

    前言 前几篇介绍过了 Creation Operators Filtering Operators Join Creation Operators Error Handling Operators T ...