c++11 之 auto、decltype关键字与尾置返回类型

c++11新引入两个关键字: auto、decltype来进行类型说明。它们为较复杂类型的声明提供了帮助。

一、auto关键字

    1> 类似c#关键字var,由它声明的对象类型依赖于表达式的类型,因此auto定义的变量必须有初始值:

    int a = 9;
    auto a1 = a;  //  正确a1为int型 

    auto a2;        //错误

    2>将对象推导为常量:

     const int  a3 = a;

    const auto a4 = a3;  // auto一般会忽略掉顶层const(顶层const 可以表示任意对象是常量),此时 a4为 const int 。

 3>可以将引用的类型设为auto

    const auto & a5 = 89;

二、decltype 关键字

    用于提供被操作数的数据类型,与auto不同decltype不会忽略任何修饰。

    int  a = 9;

   const int a1 = a;

   decltype(a1)  a2 = 9;  // a2 为const 必须初始化;

三、尾置返回类型

    任意函数的定义都可以使用尾置返回类型,通常使用于较复杂的返回类型,比如:数组指针,函数指针。

    尾置返回类型的语法是: 在函数参数列表的后边加一个 -> 后边跟实际返回类型。

   如返回数组指针的函数:

     auto foo(int)-> int(*)[3];  // 注 * 优先级比[] 低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值