Создание объекта класса из его местоположения в общем объекте

В C вы можете динамически связать общий объект с помощью dlopen () и использовать dlsym (), чтобы найти адрес определенного символа (функции) и назначить его указателю на функцию.

В C ++, если вам случится знать адрес конструктора класса, вы сможете создать
новый объект из этого? Я действительно понимаю, что использование статического метода, который бы возвращал объект класса, является соглашением для динамического связывания в c ++.

Мне было любопытно, можно ли создать объект из адреса конструкторов. Если да, можете ли вы привести пример?

заранее спасибо

0

Решение

Ты не можешь Проблема в том, что вы не можете вызвать конструктор напрямую; все вызовы конструктора неявно генерируются компилятором. Это также означает, что вы не можете вызвать его через указатель на функцию.

Я также просто попытался взять адрес конструктора, который тоже не работал (хотя это был быстрый взлом, не могу быть уверен, что он действительно действителен) — поскольку конструкторы не имеют возвращаемого типа, следующий Вопрос был бы, как написать тип для этого указателя функции.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]