
Here's the scenario: I want define a base class that allocate some buffer once for all derived classes, while the size of the buffer varies among different derived classes. I could achieve it in this way: class base { public: base():size(), p_array(0){} private: size_t size; boost::shared_ptr<unsigned char> p_array; }; in the derived class: class derived { public: derived(size_t array_size):size(array_size) { p_array.reset(new unsigned char[size]); } private: size_t size; boost::shared_ptr<unsigned char> p_array; }; However, in order to simplify the design of the derived class, I really want to put this line: p_array.reset(new unsigned char[size]); to somewhere in the base class, thus writing it only once. Is there any C++ design pattern could achieve it? Thanks