面試中被問到了,但是當時沒答出來,后來發現挺簡單的。
指明域就可以了
例如,
#include<iostream> class Base{ public: virtual void f() { std::cout << "base" << std::endl; } }; class Test : public Base{ public: void f() { std::cout << "test" << std::endl; } }; int main() { Base* b = new Test(); b->Base::f(); }
這時候其實已經是靜態綁定了,編譯器就能確定。