お世話になります。
C++のstd::shared_ptrの配列についての質問です。
c++
1 std::shared_ptr<int> buffer(new int[10], std::default_delete<int[]>()); 2
とすることでdelete[]を呼び出してくれる配列版のstd::shared_ptrを作成することはわかるのですが、事前に
c++
1 std::shared_ptr<int> buffer;
としておき、後で実態(?)を生成することは可能でしょうか?
できれば、int[10]としているところも、何らかの計算で得た配列長を指定したいです。
例えば以下のような感じを想定しています。
c++
1class Image 2{ 3public: 4 Image() {} 5 ~Image() {} 6 7 void create( int width, int height ); 8 9protected: 10 std::shared_ptr<char> buffer; 11}; 12 13void Image::create( int width, int height ) 14{ 15 int length = width * height; 16 buffer = <ここでlength分のcharの配列を作成してstd::shared_ptrの制御下にしたい>; 17}
以上、宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/21 11:48
2020/02/21 13:15
2020/02/22 02:33
2020/02/22 06:04