auto关键字可以用来让编译器自动推断变量的类型。在C++11及以上的版本中,使用auto关键字来定义变量更加简便。例如:
auto x = 5; //编译器会将x的类型推断为int类型
auto str = "hello"; //编译器会将str的类型推断为const char*
try-catch语句用于捕获异常,避免程序崩溃。例如:
try{
//代码块
}catch(ExceptionType1 e){
//处理类型1的异常
}catch(ExceptionType2 e){
//处理类型2的异常
}catch(...){
//处理其它类型的异常
}
作用域是指程序内定义变量的有效范围。在C++中,变量有局部作用域和全局作用域。例如:
int global = 1; //全局变量
int main(){
int local = 2; //局部变量
{
int inner = 3; //内层局部变量
}
}
以上三个概念的结合使用,可以很方便地编写C++程序。例如:
auto func(){
try{
int x = 10;
if(x == 10){
//抛出异常
throw std::runtime_error("x不能等于10");
}
return x;
}catch(std::runtime_error& e){
//捕获抛出的异常
std::cout << e.what() << std::endl;
return 0;
}
}
int main(){
auto value = func();
std::cout << "value:" << value << std::endl;
}
这段代码定义了一个返回值为auto类型的函数,函数内部抛出了一个std::runtime_error类型的异常,通过try-catch语句捕获,并输出异常信息。最终程序输出结果为:
x不能