登 录
class Base { public: virtual void display(std::string strShow = "I am Base class !") { std::cout << strShow << std::endl; } virtual ~Base(){} }; class Derive: public Base { public: virtual void display(std::string strShow = "I am Derive class !") { std::cout << strShow << std::endl; } virtual ~Derive(){} }; int main() { Base* pBase = new Derive(); Derive* pDerive = new Derive(); pBase->display(); pDerive->display(); delete pBase; delete pDerive; return 0; }
表面上看是多态,但是我们应该注意到函数的参数,当我们不带参数时,他使用默认的参数。
默认的参数会以静态类型为准,而实际运行时会以真实的类型为准。
抱歉!评论已关闭.