当我们去面试的时候总会遇到笔试里面会有这个问题,New 和 Malloc 有什么不同?
1: 最大的区别在于:New 是运算符,可以重载。Malloc是函数,可以重写(覆盖)。
New / Delete 是 C++ 里面的运算符。 Malloc 和 Free是 C++ / C语言标准库函数。他们都是用于动态分配内存和释放内存
说到重载那么问题来了。什么是重载?
重载:一般用于在一个类内实现若干重载的方法,这些方法的名称相同而参数不同。
重写(覆盖):一般是用于子类在继承父类是,重写(重新实现)父类中的方法。
重写(覆盖)的规则:
1:重写方法的参数列表必须完全与被重写的方法相同。
2:重写方法的访问修饰符一定要大于或等于被重写方法的访问修饰符(Public > Projected > Default > Private )
3:重写方法的返回值必须相同
4:抛出异常必须一致
5:被重写的方法不能私有的(Private),否则在其子类中只是重新定义了一个方法,并没有实现对其重写
6:静态方法不能重写为非静态的方法
2: New / Delete 可执行构造函数和析构函数,Malloc 和 Fr