Я должен использовать malloc
для выделения памяти. У меня есть пользовательский класс, которому нужен пользовательский operator=
. Допустим, это A
:
class A {
public:
int n;
A(int n) : n(n) {}
A& operator=(const A& other) {
n = other.n;
return *this;
}
};
Я выделяю память с malloc
:
int main() {
A* a = (A*) malloc(sizeof(A));
A b(1);
//Is it safe to do this as long as I copy everything in operator=?
*a = b;
//Clean up
a->~A();
free(a);
return 0;
}
Я знаю, что могу также использовать новое место размещения:
a = new (a) A(b);
Безопасно ли копировать пользовательский класс в неинициализированную память?
Спасибо