首页 / 科技数码 / 正文

方法重载与方法重写的区别 

方法重载与方法重写的区别主要有以下几点:

1. 范围区别:重写和被重写的函数在不同的类中,重载和被重载的函数在同一类中。

2. 参数区别:重写与被重写的函数参数列表一定相同,重载和被重载的函数参数列表一定不同。

3. virtual的区别:重写的基类函数必须要有virtual修饰,重载函数和被重载函数可以被virtual修饰,也可以没有。

4. 异常区别:子类抛出的异常不能超过父类相应方法抛出的异常。

5. 访问级别区别:子类方法的访问级别不能低于父类相应方法的访问级别。

6. 返回值类型区别:子类重写父类方法的返回值类型不能大于父类方法的返回值类型。

虽然C语言不支持方法重载和方法重写,但是可以通过一些技巧来实现类似的功能,例如,可以使用结构体来模拟面向对象中的类,使用函数指针来模拟方法,然后通过if语句或者switch语句来实现方法重载或者方法重写。

如有侵权请及时联系我们处理,转载请注明出处来自