Предположим, что класс A имеет регулярную функцию-член и функцию виртуального члена, и у меня есть два указателя, указывающих на один и тот же объект A. Предположим, что один ptr удалил объект, а другой указатель не знает об этом. Что произойдет, если другой указатель попытается вызвать регулярную функцию-член и функцию виртуального члена?поведение регулярной функции и виртуальной функции при удалении объекта
Я понимаю, что не рекомендуется поведение использования указателя после удаления объекта и будет подчеркивать разницу между регулярной функцией и виртуальной функцией, даже статической функцией-членом. Как именно компилятор обрабатывает регулярную функцию, виртуальную функцию и даже статическую функцию во время компиляции?
Спасибо!
Довольно уверен, что это UB – Alejandro
Уже ответил на http://stackoverflow.com/a/11887733/981959 и отличный «гостиничный номер», на который он ссылается. –
Благодарим вас за указание на «гостиничный номер». Мой вопрос на самом деле больше подчеркивает разницу между регулярной функцией и виртуальной функцией. Я понимаю, что не рекомендуется поведение использования указателя после удаления объекта. Но как именно компилятор рассматривает регулярную функцию, виртуальную функцию и даже статическую функцию во время компиляции? Это вопрос, который меня больше интересует. Возможно, я не объяснил это достаточно хорошо в предыдущем посте. В этом аспекте вы можете порекомендовать ответ? Благодаря! – Sarah