struct B { void foo () {} }; struct D : B { using B::foo; static void foo () {} }; int main () { D obj; obj.foo(); // calls D::foo() !? }
Метод-член и
статический
метод-член полностью различаются по двум причинам:
статический метод
не переопределяет виртуальные функции в базовомклассе
- Сигнатура указателя функции для обоих случаи разные
Когда метод вызывается объектом, разве метод-член не должен иметь более высокое логическое предпочтение? (Просто C ++ позволяет вызывать метод
static
с использованием объекта, будет ли он рассматриваться как замещенный метод ?)