|
![]() |
#1 |
Соучастник
|
Цитата:
Изначально опубликовано fed
Я уже давненько не перечитывал ARM Страуструпа, но боюсь что в C++ тебя постигнет такая же неудача с этими конструкциями. Модификатор final (его то как раз C++ нету, это из Java пришло) имеет смысл только для методов экземпляра, поскольку механизм "виртуализации" методов для статических методов не применим, так как они вызываются не в контексте экземпляра, соответственно у компилятора нет доступа к таблице виртуальных методов, привязываемой к экземпляру. При вызове статического метода класса, нужно указывать именно тот класс в котором этот метод определен, то есть вызов child: ![]() В дочерних классах наследуются только методы экземпляра (не статические). аргумент 2: более того, final static void method_name - приводится в руководстве разработчика Axapta как правильный пример.
__________________
View Anton Soldatov's LinkedIn profile |
|