¿Puedo llamar a la ubicación C++ como nueva en constructores con parámetros? Estoy implementando un asignador personalizado y quiero evitar tener que mover la funcionalidad de los constructores no predeterminados a una función init.Construcción de constructores nuevos y no predeterminados
class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}
CFoo(int myFoo)
{
foo = myFoo;
}
};
CFoo* foo = new (pChunkOfMemory) CFoo(42);
yo esperaría un objeto de tipo CFOO a ser construido en pChunkOfMemory usando el segundo constructor. Al usar el operador new am, ¿solo me quedo con los constructores predeterminados?
¡Solucionado! No lo hice #include <new>
. Después de esto, llamar a placement :: new funcionó bien con los constructores no predeterminados.
¿Lo has probado? –
Sí - error C2660: 'operador nuevo': la función no toma 2 argumentos. ¿Tienes una respuesta a la pregunta? –
¿La colocación nueva sin argumentos de constructor funciona en el mismo contexto? ¿Recordó '#include'? –
aschepler