c++ - C++ 中的变量作用域?

标签 c++ debugging error-handling scope

在 C++ 中,在 main 中声明的任何变量都将在整个 main 中可用,对吗?我的意思是如果变量是在 try 循环中声明的,它们是否仍然可以在整个 main 中访问? 因为我在 main 的 try 循环中声明了几个变量,但是如果我在 try 循环之外的 main 的任何其他部分使用它们,我会得到一个“未在此范围内声明”的错误

很遗憾,我不能发布我的实际代码,但这基本上就是我正在做的

int main()
{
   try 
   {
     int number = 0;
   }

   catch (...)
   {
     cout <<"Error";
   }

   number ++;
   cout <<number;

   return 0;
}

我基本上会在第 13 行和第 14 行收到一个错误,说 number 没有在此范围内声明。

最佳答案

number 的范围仅限于 try block 。将此声明拉出到 main 范围以访问 try block 之后的变量:

int main()
{
   int number = 0;
   try 
   {
     // do something...
   }

   catch (...)
   {
     cout <<"Error";
   }

   number ++;
   cout <<number;

   return 0;
}

关于c++ - C++ 中的变量作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030366/

相关文章:

java - 需要故意使 JMS 失败才能调用错误处理程序

linq-to-sql - Linq to Sql Sum,无记录

php - 从PHP中的error_log消除DEPRECATED错误

c++ - fscanf 卡在第一行

c++ - C++ 中的 Squawk 代码生成(4 位八进制标识符)

c++ - C++ 中的双重调度

javascript - 没有 JS 源的 Firefox 调试器空白

c++ - 在 QPlainTextEdit 中通过 Ctrl+Wheel 启用文本缩放

c - 带有调试信息的二进制文件的 objdump 产生损坏的输出

c - 当 gdb 不支持操作系统时,使用 gdb 的 Python 回溯不同的操作系统线程