CClassA* pCA = new (pCB) CClassA(initializer) ???
От: Andrey Zvyagilskiy  
Дата: 03.01.02 19:53
Оценка:
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  
Дата: 03.01.02 20:06
Оценка:
Правильно такая фича называется "placement new", а не "inplace new"
Такой вызов создает в уже блоке памяти по адресу pCB экземпляр
обьекта CClassA.

Разумеется, размер блока pCB должен быть достаточным для размещения
экземпляра класса...
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[2]: CClassA* pCA = new (pCB) CClassA(initializer) ???
От: Andrey Zvyagilskiy  
Дата: 03.01.02 20:08
Оценка:
Здравствуйте 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  
Дата: 03.01.02 20:47
Оценка:
AZ>Nu eto bilo bi ponatno esli bi pCB ukazival na kusok pamati,
AZ>a on ukazivaet na OB'EKT — vot chto mena smushaet.
Гмм. Все страньше и страньше.

Покажи пожалуйста кусок кода который это делает и реализацию этого
хитрого placement new.
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[4]: CClassA* pCA = new (pCB) CClassA(initializer) ???
От: Andrey Zvyagilskiy  
Дата: 03.01.02 20:57
Оценка:
Здравствуйте 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) ???
От: Андрей Тарасевич Беларусь  
Дата: 04.01.02 02:53
Оценка:
Здравствуйте 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' дейстивительно сидит сконструированный объект, тогда тут действительно есть чему удивляться. А если в этой памяти объект еще не сконструирован (или уже деструктирован) — то это не боее чем просто сырой кусок памяти и никакого объекта там нет.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.