C++重载和重写的区别 c++重载和重写



文章插图
C++重载和重写的区别 c++重载和重写

文章插图
重载
一定是同一个作用域下 。
两函数的函数名相同 , 但是参数不能完全相同 , 可以是参数类型不同 , 也可以是参数个数不同 , 至于返回值 , 不影响 。
重载例子
【C++重载和重写的区别 c++重载和重写】void Test(int x, int y){std::cout << "Test int, int" << std::endl;}void Test(int x, double y) {std::cout << "Test int, double" << std::endl;}int main(void) {Test(1, 2);Test(1, 1.1);return 0;}重定义和重写
发生在两个不同的类中 , 一个是父类 , 一个是子类 。
重定义分两种 , 一种是普通函数重定义 , 另一种是虚函数重写 。
普通函数重定义:如果父类的普通成员函数被子类重写 , 就是重定义 。
虚函数重写:如果父类的虚函数被子类重写 , 就是虚函数重写 , 这个函数就会发生多态 。