为什么引入auto关键字
方便编译器自动推导类型。
auto str = "csdn"; //自动类型推断,str为 char const *
auto fValue = 100.0;//自动类型推断,fValue为double
auto auto_iValue = fValue;//自动类型推断,auto_iValue为double
auto *auto_pt1 = &fValue; //auto_pt1 为 double *
auto auto_pt2 = &fValue; //auto_pt2 为 double*
auto &auto_pt3 = fValue; //auto_pt3 为 double
auto auto_pt4 = auto_pt3; //auto_pt4 为 double
1.使用auto定义冗长的类型
2.auto 用于泛型编程
template <typename _Tx,typename _Ty>
void add(_Tx x, _Ty y)
{
auto sum = x+y;
cout << "sum:"<<typeid(sum).name() << endl;
std::cout << sum;
}
3.在定义模板函数时,用于声明依赖模板参数的变量类型。
template <typename _Tx,typename _Ty>
void add(_Tx x, _Ty y)
{
auto sum = x+y;
cout << "sum:"<<typeid(sum).name() << endl;
std::cout << sum;
}