Вот мои мысли о управлении C++ Memeory, пожалуйста, не стесняйтесь комментировать.Управление памятью на С ++: RAII, Умные указатели и GC
Память может быть выделена в стек или куча.
Правило 1:
Если два вложенные стеки необходимо обмениваться данными, использовать RAII выделения памяти в стека, как показано ниже:
func1() {
Resource res; // res will be destructed once func1 returns
func2(&res);
}
Правило 2:
Если два параллельных стеков необходимо обмениваться данными (не полями членов класса), память должна быть выделена в кучей, используйте Smart Points или GC. Например:
func() {
shared_ptr<Resource> res = func1(); // returned a shared ptr to a memory allocated in func1
func2(res);
}
Правильно ли я?
Какой ваш вопрос именно? И в отношении чего, стандарт? Поскольку строго говоря, C++ не имеет понятия о «стеке» или «куче», по крайней мере, не при обсуждении модели памяти. – user657267
RAII, shared_pointer используются, когда участвует полиморфизм – billz