-2

これは、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 ブロックに入れるのは良い習慣だと思いましたか?

4

2 に答える 2