c++ virtual function call without pointer or reference
问题 As far as I know, virtual function call usually requires pointer or reference. So I am very surprised by the following codes. #include <iostream> using namespace std; class B{ public: void runB(){ call(); } virtual void call(){ cout<<"B\n"; }; }; class D: public B{ public: void runD(){ runB(); } void call(){ cout<<"D\n"; } }; int main(){ D d; d.runD(); } The output is D Could someone please comment why this virtual function call works? Thanks。 回答1: Within a member function, any references to