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