C++11之 auto

C++11類型推導html

 

一、使用auto的時候,編譯器根據上下文狀況,肯定auto變量的真正類型。auto在C++14中能夠做爲函數的返回值,所以auto AddTest(int a, int b)的定義是沒問題的。函數

auto AddTest(int a, int b) 
{
    return a + b;
}

int main()
{
    auto index = 10;
    auto str = "abc";
    auto ret = AddTest(1,2);
    std::cout << "index:" << index << std::endl;
    std::cout << "str:" << str << std::endl;
    std::cout << "res:" << ret << std::endl;
}

 

二、只能用於定義函數,不能用於聲明函數。spa

#pragma once
class Test
{
public:
    auto TestWork(int a ,int b);
};

   但若是把實現寫在頭文件中,能夠編譯經過,由於編譯器能夠根據函數實現的返回值肯定auto的真實類型。code

#pragma once
class Test
{
public:
    auto TestWork(int a, int b)
    {
        return a + b;
    }
};

 

三、htm

  auto 關鍵字。這會依據該初始化子(initializer)的具體類型產生參數:blog

  

  除此以外,decltype 可以被用來在編譯期決定一個表示式的類型。ip

  

參考:get

一、http://www.javashuo.com/article/p-qazjplio-er.html
編譯器

二、it

相關文章
相關標籤/搜索