c++自动识别类型
时间: 2023-07-04 09:13:08 浏览: 109
在 C++11 标准中引入了关键字 `auto`,可以用于自动推断变量的类型。使用 `auto` 关键字声明的变量,其类型会根据初始化表达式的类型来自动推断。
例如:
```
auto x = 1; // x 的类型为 int
auto y = 3.14; // y 的类型为 double
auto z = "hello"; // z 的类型为 const char *
```
此外,C++14 标准中还引入了 `decltype(auto)`,可以用于自动推断函数返回值的类型,其类型同样根据表达式的类型来自动推断。例如:
```
int func1() { return 1; }
auto res1 = func1(); // res1 的类型为 int
double func2() { return 3.14; }
decltype(auto) res2 = func2(); // res2 的类型为 double
```
需要注意的是,`auto` 推断出来的类型有时可能并不是我们期望的类型,因此在使用 `auto` 声明变量时,应该尽量保证初始化表达式的类型能够明确推断出变量的类型。
阅读全文