C++重载与重写
2个回答
展开全部
1、C++函数重写
1)被重写的函数不能是static的。必须是virtual的,或者是override的(即函数在最原始的基类中被声明为virtual,c++中没有override)。
2)重写函数必须有相同的类型,名称和参数列表
3)重写函数的访问修饰符可以不同。尽管virtual是private的,派生类中重写改写为public,protected也是可以的(这点与C#完全不同)
2、C++函数重载
1)直观的理解,重载就是一个名称相同的函数有不同版本(参数列表不同:参数类型,顺序)。
2)构成重载函数集的函数必须在同一个域。例如,试图在基类和派生类中的同名函数集中构成一个重载集,将引发错误(函数调用时,编译错误),事实上,派生类中的新函数“版本”隐藏了基类中定义的函数(隐藏在C++很少提及,但存在)
1)被重写的函数不能是static的。必须是virtual的,或者是override的(即函数在最原始的基类中被声明为virtual,c++中没有override)。
2)重写函数必须有相同的类型,名称和参数列表
3)重写函数的访问修饰符可以不同。尽管virtual是private的,派生类中重写改写为public,protected也是可以的(这点与C#完全不同)
2、C++函数重载
1)直观的理解,重载就是一个名称相同的函数有不同版本(参数列表不同:参数类型,顺序)。
2)构成重载函数集的函数必须在同一个域。例如,试图在基类和派生类中的同名函数集中构成一个重载集,将引发错误(函数调用时,编译错误),事实上,派生类中的新函数“版本”隐藏了基类中定义的函数(隐藏在C++很少提及,但存在)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询