C++英文面试常见问题

Difference between new/delete and malloc/free

New/delete is C++, malloc/free comes from good old C.

In C++, new calls an objects constructor and delete calls the destructor.

Malloc and free, coming from the dark ages before OO, only allocate and free the memory, without executing any code of the object.

When you new an object, space for the object is not only allocated but the object’s constructor is called.
And similarly when you delete an object, the object’s destructor is called before the memory is released. If you use malloc and free, the destructor and constructor do not get called respectively and obviously, this simply won’t do in C++ except in certain very rare situations where you have classes without any specific destructor/constructors. new is a operator and malloc is a function.

Friend function

A friend function of a class is defined outside that class’s scope but it has the right to access all private and protected members of the class.

Even though the prototypes for friend functions appear in the class definition, friends are not member functions.

A friend can be a function, function template, or member function, or a class or class template, in which case the entire class and all of its members are friends.

Virtual function and pure virtual function

A virtual function or virtual method is a function or method whose behavior can be overridden with

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值