В C вы можете динамически связать общий объект с помощью dlopen () и использовать dlsym (), чтобы найти адрес определенного символа (функции) и назначить его указателю на функцию.
В C ++, если вам случится знать адрес конструктора класса, вы сможете создать
новый объект из этого? Я действительно понимаю, что использование статического метода, который бы возвращал объект класса, является соглашением для динамического связывания в c ++.
Мне было любопытно, можно ли создать объект из адреса конструкторов. Если да, можете ли вы привести пример?
заранее спасибо
Ты не можешь Проблема в том, что вы не можете вызвать конструктор напрямую; все вызовы конструктора неявно генерируются компилятором. Это также означает, что вы не можете вызвать его через указатель на функцию.
Я также просто попытался взять адрес конструктора, который тоже не работал (хотя это был быстрый взлом, не могу быть уверен, что он действительно действителен) — поскольку конструкторы не имеют возвращаемого типа, следующий Вопрос был бы, как написать тип для этого указателя функции.
Других решений пока нет …