一、覆写、重载与隐藏的区别:
1.1 覆写(重写)、重载与隐藏的定义
覆写(override):是指派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有函数体不同(花括号内),派生类调用时会调用派生类的重写函数,不会调用被重写函数。重写的基类中被重写的函数必须有virtual修饰。
重载(overload):是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。
隐藏(hide):是指派生类的函数屏蔽了与其同名的基类函数,只要函数名称是相同的,不管参数列是否相同,基类函数都会被隐藏。
1.2 重载与覆写
重载的函数必须在相同类域,是编译时确定函数地址,与函数模版同属于编译时多态,在编译时就已经根据函数的参数特征确定了要使用哪个函数。
函数覆写在不同类域实现,即派生类函数覆写基类函数,是运行时多态,通过虚函数表和动态绑定机制,在运行时通过查找子类虚函数表来动态调用子类函数。
重载函数的参数的类型,个数&#x