Tworzenie obiektu za pomocą malloc
Ostatnio zmodyfikowano 2011-03-07 14:15
DejaVu Temat założony przez niniejszego użytkownika |
Tworzenie obiektu za pomocą malloc » 2011-03-07 12:30:35 Chcę stworzyć obiekt za pomocą funkcji malloc - problem mam z poprawnym politycznie wywołaniem konstruktora klasy. Kod wygląda następująco:
#include <cstdlib>
class klasa { public: klasa( int a, int b, int c ) { } }; int main() { klasa * test =( klasa * ) malloc( sizeof( klasa ) ); new( test ) klasa( 1, 2, 3 ); test->klasa( 1, 2, 3 ); return 0; }
Zetknąłem się już z operatorem placement new, jednak nie stosowałem go jeszcze w sytuacjach w których nie posiadam konstruktora domyślnego.
Wie ktoś jak to osiągnąć?
Błędy kompilacji
Próba 1
error C2661: 'operator new' : no overloaded function takes 2 arguments
Próba 2
error C2273: 'function-style cast' : illegal as right side of '->' operator
|
|
Elaine |
» 2011-03-07 13:22:05 Aby użyć placement new, należy najpierw dołączyć nagłówek <new> lub samemu zdefiniować placement new. |
|
DejaVu Temat założony przez niniejszego użytkownika |
» 2011-03-07 14:15:03 |
|
« 1 » |