release dynamic memory for pointer member in c++ -


i have class:

class {     a();     ////////something class }; 

then have class:

class b { public:     b();     a* member_a; }; b::b() {     this->member_a = new a(); } 

what want this:

main() {     vector<b> vec_b;     int num=1;     while(some_condition)     {         (int i=0; i<num; i++)         {             vec_b.pushback(b());         }         ////////do vec_b;         num++;     } } 

i know facing memory leak issue because of new a() in constructor of class b. trying release memory after each while loop, means recycle memory has been taken vec_b , objects of class b in vector, important release memory taken class-a-objects. thank much!

that seems should job of b's destructor

b::~b() {     delete member_a; } 

if have access c++11 or later, prefer std::unique_ptr deallocation free

class b { public:     b();     std::unique_ptr<a> member_a; };  b::b() {     member_a = std::make_unique<a>(); } 

Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -