c++ - The correct decision of storing objects in memory (composite pattern) -


i have object of ccompositeprimitive class in main.cpp

int main() {     ...     ccompositeprimitive drawobjects;     ... } 

the ccompositeprimitive class has field:

private:  list<cdrawobject*> m_objects; 

and method:

public:  add(...);   void ccompositeprimitive::add() {  objects.push_back(new rectangle(...)) } 

on forums ask me drawobjects object stored in heap. think else. in opinion drawobjects object stored in stack. how can preserve computer's memory of stack overflow (any different memory problems), if drawobjects can store in list m_objects; many objects, can content ccompositeprimitive objects (composite pattern).

depends on how class ccompositeprimitive m_drawojects; stored in gets created. (i assume it's stored inside class because of m_)
if class created on stack, m_drawobjects too. if class created on heap, m_drawobjects. indifferent of wether m_drawobjects created on heap or stack, objects inside list<cdrawobject*> m_objects; created on heap, because that's how linked list works.

edit: according edit , comment, drawobjects of course created on stack. :) said objects inside list still holds true.


Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -