I slishal chto est takoy inplace operator new, mozhet eto ono, kakim to bokom?
Mozhet kto-nibud obyasnit subj (chto tam delaet pCB, pCB — ukazatel na obiekt nekotorogo klassa)? CClassB vrode ne pereopredelaet nikakix operatorov.
Spasibo.
P.P: sorry, ne narisovani russkie bukvi na klave.
Re: CClassA* pCA = new (pCB) CClassA(initializer) ???
Здравствуйте TepMuHyc, Вы писали:
TMH>Правильно такая фича называется "placement new", а не "inplace new" TMH>Такой вызов создает в уже блоке памяти по адресу pCB экземпляр TMH>обьекта CClassA.
TMH>Разумеется, размер блока pCB должен быть достаточным для размещения TMH>экземпляра класса...
Nu eto bilo bi ponatno esli bi pCB ukazival na kusok pamati, a on ukazivaet na OB'EKT — vot chto mena smushaet.
Re[3]: CClassA* pCA = new (pCB) CClassA(initializer) ???
Здравствуйте TepMuHyc, Вы писали:
AZ>>Nu eto bilo bi ponatno esli bi pCB ukazival na kusok pamati, AZ>>a on ukazivaet na OB'EKT — vot chto mena smushaet. TMH>Гмм. Все страньше и страньше.
TMH>Покажи пожалуйста кусок кода который это делает и реализацию этого TMH>хитрого placement new.
oy, sorry, I nashel: tut operator new vse taki pereopredelaetsa :). Chuzhoy kod smotru.
Re[3]: CClassA* pCA = new (pCB) CClassA(initializer) ???
Здравствуйте Andrey Zvyagilskiy, Вы писали:
AZ>Здравствуйте TepMuHyc, Вы писали:
TMH>>Правильно такая фича называется "placement new", а не "inplace new" TMH>>Такой вызов создает в уже блоке памяти по адресу pCB экземпляр TMH>>обьекта CClassA.
TMH>>Разумеется, размер блока pCB должен быть достаточным для размещения TMH>>экземпляра класса...
AZ>Nu eto bilo bi ponatno esli bi pCB ukazival na kusok pamati, a on ukazivaet na OB'EKT — vot chto mena smushaet.
Что значит "указывает на объект"? Если в той памяти, на которую указывает 'pCB' дейстивительно сидит сконструированный объект, тогда тут действительно есть чему удивляться. А если в этой памяти объект еще не сконструирован (или уже деструктирован) — то это не боее чем просто сырой кусок памяти и никакого объекта там нет.