当前位置:首页 > TAG信息列表 > 怎么在类中创建构造函数什么情况下用构造函数法?

怎么在类中创建构造函数什么情况下用构造函数法?

怎么在类中创建构造函数 什么情况下用构造函数法?

什么情况下用构造函数法?

有两种情况,假设类名是ctest,构造函数是默认构造函数。一个是创建本地对象时,ctestc;//此时会自动调用构造函数。一个是在堆上用new运算符分配对象时,ctest*pnewct

cnew和delete是如何调用构造函数和析构函数的?

在c中,你可能经常使用new和delete来动态申请和释放内存,但是你有没有想过下面这些问题?

是新增和删除功能。

怎么在类中创建构造函数 什么情况下用构造函数法?

新增[]和删除[]是什么?你什么时候使用它们?

你知道运算符new和运算符delete吗?

为什么new[]中的数组有时会被delete释放,有时不会?

如果你对这些问题有什么疑问,不妨看看我的文章。

新增和删除的到底是什么?

找工作的同学如果看一些面试的书,相信都会遇到这样的问题:sizeof不是函数,然后给出一堆理由证明sizeof不是函数。这里和sizeof一样,new和delete不是函数,是c定义的关键字,可以通过特定的语法形成表达式。与sizeof不同的是,sizeof可以在编译时确定其返回值,new和delete背后的机制更加复杂。

在你继续下去之前,请想一想你认为new应该做什么。可能你的第一反应是new就像c语言中的malloc函数一样,是用来动态申请空间的。你答对了一半。请看下面的陈述:

string*ps新字符串(helloworld)

可以看到new和malloc还是有点区别的。malloc在申请空间后不会初始化内存,但是new可以。所以newexpression背后你要做的事情并没有你想的那么简单。在我用例子解释new背后的机制之前,您需要知道什么是操作符new和操作符delete。

操作员新建和操作员删除

这两个其实是c语言标准库的库函数,它们的原型如下:

void*operatornew(size_t)//分配一个对象

void*运算符delete(void*)//释放一个对象电休克疗法

void*operatornew[](size_t)//分配一个数组

void*运算符delete[](void*)//释放数组

可以跳过后两个,以后再介绍。前两个是c标准库函数。你认为这些是功能吗?请不要。;t怀疑,这就是函数!在cprimer这本书里说这不是new和delete的重载表达式(比如operator是重载运算符),因为new和delete的重载是不允许的。但是我没有。;我不明白为什么我应该使用操作符new和操作符delete,这很令人费解。我们只需要知道它们的意思。这两个函数有点像c语言中的malloc和free函数,都是用来申请和释放内存的,而运算符new在申请内存后并不初始化内存,而是直接返回申请内存的指针。

我们可以在程序中直接使用这些函数。

新建和删除背后的机制

知道了以上两个函数,我们用一个例子来解释new和delete背后的机制:

我们不。;t使用简单的c内置类型作为示例,但是使用更复杂的类类型来定义类a:

{

public:

:风险值

{

fopen_s(ampfile,测试

delete函数new机制


申明号 洽洽网

  • 关注微信关注微信

猜你喜欢

热门标签

京东卖家怎么申请 幻灯片尺寸怎么设置 win7旗舰版关机慢的解决方法 iwatch一直在开机界面 家用摄像头怎么语音对讲权限 qq账单怎么导出 发给陌生人支付宝收款码有危险吗 手机设置勿扰模式打电话提示什么 电脑u盘重装系统步骤 网线连接路由器怎么连 oracle三种更新方式 oracle几种连接方式 小米mix4隐藏功能大全mix4充电器多少w? q币怎么话费支付怎样使用手机话费充Q币?介绍 centos7安装mysql完整版如何在官网上下载可安装版的MySQL数据库?介绍 快手通过消息添加怎么弄快手粉丝通过好友添加是什么意思?介绍 家庭装修哪些位置要留网线装修3个卧室都留网线接口吗?介绍 苹果手机如何整理相册 压缩软件压到最小会影响质量吗压缩最快和体积最小有什么区别?介绍 桌面主题插件怎么弄OPPOr9怎么开主题插件?介绍 微信怎么开夜间模式苹果 wps表格太宽怎么调整WPS表格怎么把框拉大? oppo手机屏碎了换屏多少钱 喵喵机可以怎么用喵喵机p1和p2和p3的区别?介绍 火绒app怎么创建桌面快捷方式浏览器hosts异常怎么处理?介绍 钉钉手机怎么共享文档钉钉怎么发送文件夹给别人? 如何在word里添加表格附件word里的附件表格怎么提取出来?介绍 微信京东购物怎么删除订单记录京东快递怎么删除快递信息? ps怎么把图片制作成全屏手机壁纸ps怎么把一个物体乱序满屏?介绍 苹果浏览器密码自动填充

微信公众号