09/07/27 23:05:28
class hoge {
private:
int *p;
public:
hoge(int x) : p(new int[x]) {}
~hoge() {delete [] p;}
void fuga() {・・・}
};
int main(void) {
try {
std::cin >> x;
hoge h(x);
}
catch(std::bad_alloc& e) {
std::cout << e.what() << std::endl;
}
h.fuga();
return 0;
}
↑スコープが外れちゃうからh.fuga()でコンパイルエラーになってしまう
自動変数に対してtry-catchする場合はtryスコープを伸ばすしかない?
保守性を考えて自動変数からスマートポインタに変えるのがいいのかな?