这是我的代码片段,显示了 try-catch 块中的向量声明:
try {
vector<opClass> op;
}
catch (bad_alloc xa) {
cout << "\nAllocation failure!\n";
return 1;
};
//...
//...
op.push_back(<input some stuff>) //error c2065: op undeclared identifier
奇怪的是,当我将向量声明放在 try-catch 块之外时,错误就消失了。这与 STL 中向量的定义方式有关吗?我认为将这个声明放在 try-catch 块中是一个好习惯,因为向量是动态数组?