class C { public: C( ) { … } // default constructor C( int x ) { … } // convert constructor }; void print( double d ); void print( char * ); int main( ) { C c1,c2(26);//编译过程中绑定函数调用和对应的函数体 print( 100.123); print( “100.123” ); }
class B { public: virtual void m( ) { … } }; class D : public B { public: void m ()//重置了基类方法,仍然为虚函数 { … } }; int main( ) { B*p= new D; p -> m(); // 动态绑定 D::m() return 0; }
class B { public: void m( )//非虚函数,采用静态绑定 { … } }; class D : public B { public: void m ( ) { … } }; int main( ) { B* p=new D; p ->m( ); //静态绑定 B::m() return 0; }
class B { public: void m(int x) { … } }; class D : public B { public: void m ( )//由于函数签名不同,所以二者不构成重置。 { … } }; int main( ) { D d1 ; d1.m(); // invokes D::m() d1.m(10); // ERROR d1.B::m(10); // OK return 0; }
原文:https://www.cnblogs.com/wkfvawl/p/10802371.html