相同点:
两者都是为了实现多态。
不同点:
1、重载函数要求他们的参数表要不同,虚函数的参数表和返回值都要求相同。
2、重载函数在编译时就已经确定了不同,就是说编译器会根据参数表的不同给予他们不同的函数名,而重载是在程序运行时才确定的。
3、虚函数是为用基类指针访问子类函数设计的。而重载函数只执行指针类型的类的函数。
下面举个例子:
上述输出:
A::overload_print is called
B::virtual_print is called
相同点:
两者都是为了实现多态。
不同点:
1、重载函数要求他们的参数表要不同,虚函数的参数表和返回值都要求相同。
2、重载函数在编译时就已经确定了不同,就是说编译器会根据参数表的不同给予他们不同的函数名,而重载是在程序运行时才确定的。
3、虚函数是为用基类指针访问子类函数设计的。而重载函数只执行指针类型的类的函数。
下面举个例子:
上述输出:
A::overload_print is called
B::virtual_print is called