重载overload, 覆盖重写override,隐藏overwrite

1. 重载overload
	- 实现函数重载的条件:
		§ 同一个作用域(比如同在基类或者同在派生类)
		§ 参数个数不同或者参数类型不同或者参数顺序不同
		§ const也可以作为重载条件
	- 返回值不作为函数重载的依据
	- 函数重载和默认参数一起使用,需要额外注意二义性问题的产生
	
2. 覆盖重写override
	- 派生类函数覆盖重写基类虚函数:
	- 规则如下:
		§ 不同的作用域(分别位于派生类和基类)
		§ 派生类重写基类的virtual函数
		§ 函数返回值,函数名字,函数参数,必须和基类中的虚函数一致
		
3. 隐藏overwrite
	- 是指派生类的函数屏蔽了与其同名的基类函数
	- 规则如下:
		§ 如果派生类的函数与基类的函数同名,但是参数不同,此时不论有无virtual,基类的函数将被隐藏
		§ 如果派生类的函数与基类的函数同名,参数也相同,但是基类函数没有virtual关键字,则基类的函数被隐藏
		§ 任何时候重新定义基类中的一个重载函数,在基类中所有的其他版本将被自动隐藏(overwrite)

你可能感兴趣的:(c++)