Почему механизмы наследования C ++ непрозрачны? - PullRequest
1 голос
/ 12 сентября 2009

Почему, например, нет языковой поддержки для проверки vtable? Почему я не могу заменить функцию-член новой? У меня есть ощущение, что есть способы эффективно использовать такие функции.

Существуют ли другие языки, которые позволяют мне делать такие вещи?

Ответы [ 11 ]

0 голосов
/ 12 января 2010

Как уже отмечали другие, в стандарте C ++ отсутствует понятие "vtable", поскольку это просто почти универсальная техника реализации, во многом похожая на искажение имен.

Если вам нужна возможность переопределять функции на лету на скомпилированном языке, вас может заинтересовать Common Lisp. Должны быть и другие, но единственные другие языки, о которых я могу думать, имеют либо статическое наследование и функции, либо интерпретируются с большими затратами на производительность.

...