C++-函数覆盖和隐藏

来源:互联网 发布:windows route delete 编辑:程序博客网 时间:2024/05/16 04:54

一:覆盖

1.定义:覆盖是基类和派生类中的,基类函数是虚函数,派生类中重写此函数,函数名参数都想同,这就会发生覆盖

为什么叫覆盖?

因为派生类继承基类的时候实际上是先拷贝了基类的所有非private的成员,当基类的函数是虚函数的时候,如果重写此函数,函数名和参数完全相同,此时派生类中的函数会将派生的基类中的此函数覆盖掉(注意;并不是覆盖了基类的函数,而是派生类继承的基类的函数),所以叫做覆盖

正式因为覆盖才有了C++中的多态

条件:

       基类函数必须是虚函数

发生在基类与派生类中

函数名称和参数完全相同


二:隐藏

1.函数名称相同,参数不同,叫隐藏

2.函数名同,参数同,但是无virtual,也是隐藏

0 0