Czy mogę wywołać nowe położenie C++ na konstruktorach z parametrami? Wdrażam niestandardowy program przydzielający i chcę uniknąć konieczności przenoszenia funkcji z innych niż domyślne konstruktorów do funkcji init.Umieszczanie nowych i innych niż domyślne konstruktorów
class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}
CFoo(int myFoo)
{
foo = myFoo;
}
};
CFoo* foo = new (pChunkOfMemory) CFoo(42);
byłoby oczekiwać, obiekt typu CFoo być skonstruowane w pChunkOfMemory pomocą drugiego konstruktora. Korzystając z operatora new, utknąłem tylko z domyślnymi konstruktorami?
Rozwiązany! Nie miałem #include <new>
. Następnie wywołanie miejsca docelowego :: new działało poprawnie z innymi niż domyślnymi konstruktorami.
Czy próbowałeś? –
Tak - błąd C2660: "operator nowy": funkcja nie przyjmuje 2 argumentów. Czy masz odpowiedź na to pytanie? –
Czy nowe miejsce docelowe bez argumentów konstruktora działa w tym samym kontekście? Czy pamiętasz "#include"? –
aschepler