【面试】New 和 Malloc 区别

本文探讨了C++中的New和Malloc在内存分配、构造函数与析构函数调用、以及类型信息上的区别。New作为运算符可以重载,且会调用对象的构造函数,而Malloc作为函数只能分配内存,不执行构造或析构操作。New返回的对象指针带有类型信息,而Malloc返回Void指针,需要类型转换。

       当我们去面试的时候总会遇到笔试里面会有这个问题,New 和 Malloc 有什么不同?


1: 最大的区别在于:New 是运算符,可以重载。Malloc是函数,可以重写(覆盖)。

       New / Delete 是 C++ 里面的运算符。 Malloc 和 Free是 C++ / C语言标准库函数。他们都是用于动态分配内存和释放内存

       说到重载那么问题来了。什么是重载?

       重载:一般用于在一个类内实现若干重载的方法,这些方法的名称相同而参数不同。

 

       重写(覆盖):一般是用于子类在继承父类是,重写(重新实现)父类中的方法。

       重写(覆盖)的规则:

       1:重写方法的参数列表必须完全与被重写的方法相同。

       2:重写方法的访问修饰符一定要大于或等于被重写方法的访问修饰符(Public > Projected > Default > Private )

       3:重写方法的返回值必须相同

       4:抛出异常必须一致

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值