- 129 名前:デフォルトの名無しさん mailto:sage [2009/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スコープを伸ばすしかない? 保守性を考えて自動変数からスマートポインタに変えるのがいいのかな?
|

|