第四节 · 拟态 · 自动推断类型
const char[20] name = "langyo";
constexpr long long size = 10001L;
const double pi = 3.14159265;auto name = "langyo";
constexpr auto size = 10001L;
const auto pi = 3.14159265;Last updated
const char[20] name = "langyo";
constexpr long long size = 10001L;
const double pi = 3.14159265;auto name = "langyo";
constexpr auto size = 10001L;
const auto pi = 3.14159265;Last updated
int a = 10;
auto b = a; // 推断类型为 int
auto str1 = "langyo" // 推断类型为 const char*
auto str2 = str1; // 同样也是 const char*constexpr double t = 0.14159265;
auto pi = 3 + t; // 很遗憾,推断类型为 int,因此小数部分会被抛弃
float p = 6.66;
auto m = p; // p 的类型能容纳浮点数,正好要用到
m = 2.33; // 我们虽然需要 p 的类型,但却不需要 p 的值double t = 0.14159265;
decltype(t) n = 3 + t; // 此时该变量的类型与 t 变量一致,即 double,而不是原来默认的 int
float p = 6.66;
decltype(p) m = 2.33; // 此时该变量的类型与 p 变量一致,并且我们也能立即给出自己的初始值decltype(<欲被提取类型的对象>)decltype(auto)