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