当前位置: 首页 > news >正文

个人网站号备案吗四川省微信网站建设公

个人网站号备案吗,四川省微信网站建设公,汽车用品网站源码,免费搭建自己的官网目录 前言初始化和清理的概念构造函数和析构函数的作用构造函数的作用析构函数的作用 使用构造函数和析构函数的注意事项默认的构造函数和析构函数结束语 前言 在使用c语言开发的项目场景中#xff0c;我们往往会遇到申请空间的需求#xff0c;同时也肯定遇到过程序运行一段… 目录 前言初始化和清理的概念构造函数和析构函数的作用构造函数的作用析构函数的作用 使用构造函数和析构函数的注意事项默认的构造函数和析构函数结束语 前言 在使用c语言开发的项目场景中我们往往会遇到申请空间的需求同时也肯定遇到过程序运行一段时间后会卡死崩溃的情况分析下来大概率可能是内存堆空间容量不够用所导致我们作为开发人员在设计时往往在写了malloc申请函数之后会容易忘记释放该申请的内存堆空间。但是上述问题往往在c中可以得到很好解决。 初始化和清理的概念 当对象产生时必须初始化成员变量当对象销毁前必须清理对象初始化用构造函数清理用析构函数这两个函数是编译器调用 构造函数和析构函数的作用 构造函数的作用 先看代码 class Maker { public:Maker(){a 10;cout 构造函数 endl;}~Maker(){cout 析构函数 endl;} public:int a; };void test01() {Maker m;int b m.a;cout b endl; }好按照老样子接下来开始详细讲解每行代码的用处以及为什么这样写 void test01() {Maker m;int b m.a;cout b endl; }Maker m;//首先实例化对象并且该实例化对象为m。 int b m.a; cout b endl;//将实例化对象m的成员变量a赋值给b并且将b打印出来。 class Maker { public:Maker(){a 10;cout 构造函数 endl;}~Maker(){cout 析构函数 endl;} public:int a; };Maker(){a 10;cout 构造函数 endl;}//该函数即构造函数构造函数的作用时初始化成员变量并且是编译器自动调用的即只要我们实例化对象之后则编译器会自动调用构造函数进行初始化。 //构造函数的作用其实就类似与我们使用c语言开发时使用的malloc()函数 //在该构造函数中主要将10赋值给a。 ~Maker() {cout 析构函数 endl; }//该函数为析构函数析构函数的作用其实就类似与我们使用c语言开发时使用的free()函数所以在对象销毁前编译器同样会自动调用析构函数。 接下来我们看下上述代码的执行结果如何 由上图可知 确实会如同我们在前面讲述一样系统编译器会自动调用构造函数和析构函数。 析构函数的作用 先看代码 class Maker2 { public:Maker2(const char *name,int age){cout 有参构造 endl;pName (char*)malloc(strlen(name) 1);strcpy(pName, name);mAge age;}void printMaker2(){cout name: pName age: mAge endl;}~Maker2(){cout 析构函数 endl;if (pName ! NULL){free(pName);pName NULL;}} private:char *pName;int mAge; };void test02() {Maker2 m2(翠花,18);m2.printMaker2(); }好按照老样子接下来开始详细讲解每行代码的用处以及为什么这样写 void test02() {Maker2 m2(翠花,18);m2.printMaker2(); }//首先实例化对象并且该实例化对象为m2。 //并且这里调用的是有参构造函数的方法将翠花和18作为有参构造函数的形参传进去。 //调用类中的printMaker2函数将pName 和mAge 打印出来。 Maker2(const char *name,int age) {cout 有参构造 endl;pName (char*)malloc(strlen(name) 1);strcpy(pName, name);mAge age; }//该函数为构造函数并且使用的和上一个程序中构造形式不同使用的是有参构造其中有两个形参分别是char类型的指针变量name和int类型的age。 pName (char*)malloc(strlen(name) 1);//使用malloc函数在堆区中申请一段空间用来存放通过形参传入的name值。 strcpy(pName, name);//将name指向的那段内存空间的内容复制到pName指向的那段内存空间中即pName指向的那段内存空间中存放了真正传入该函数的name值。 mAge age;//简单的赋值操作。 ~Maker2() {cout 析构函数 endl;if (pName ! NULL){free(pName);pName NULL;} }//该函数为析构函数在该函数中首先判断在构造函数申请的堆区空间有没有申请成功如果申请成功则会调用free函数去释放掉该空间并且将其指针指向NULL。 接下来我们看下上述代码的执行结果如何 由上图可知 确实会如同我们在前面讲述一样系统编译器会自动调用构造函数和析构函数。同时成功传入参数。 使用构造函数和析构函数的注意事项 构造函数和析构函数的权限必须是公有的构造函数可以重载构造函数没有返回值不能用void,构造函数可以有参数析构函数没有返回值不能用void,没有参数有对象产生必然会调用构造函数有对象销毁必然会调用析构函数。有多少个对象产生就会调用多少次构造函数有多少个对象销毁就会调用多少次析构函数 默认的构造函数和析构函数 先看代码 class Maker { public:Maker()//默认的构造函数函数体是空的{}~Maker()//默认的析构函数函数体也是空{}//编译器默认提供默认的构造函数和析构函数void printfMaker(){a 100;cout a a endl;} private:int a; };//即使我们在类中没有声明构造函数或者析构函数也没关系编译器中已经设置了默认的构造函数和析构函数只不过在这两个函数体中都是空的不做任何处理。 结束语 如果觉得这篇文章还不错的话记得点赞 支持下
http://www.w-s-a.com/news/188056/

相关文章:

  • 唐河网站制作汉中建设工程招标新闻中心
  • 网站过期就可以抢注PHP框架和wordpress
  • 天津做网站得公司克隆网站到wordpress修改
  • 郫县网站建设网站建设报价单及项目收费明细表
  • 商标做网站logo建网站作业
  • 网站顶部展出的大幅广告中建八局第二建设有限公司
  • 公众微信绑定网站帐号优秀中文网页设计
  • 如何做漫画赚钱的网站企业网站管理系统c
  • 安康公司网站制作搜狗网站
  • 太仓住房与城乡建设局网站注册推广赚钱一个80元
  • wordpress 网站生成app企业网站改版的好处
  • 广州建站服务怎么让客户做网站
  • 南京手机网站设计公司wordpress导航页
  • 娄底市建设网站app网站开发小程序
  • 刷粉网站推广免费网站建设找王科杰信誉
  • 投标建设用地是哪个网站微信小程序多少钱
  • 做玄幻封面素材网站我国数字经济报告
  • 手机网站返回跳转wordpress带颜色的文字
  • 微信群领券网站怎么做创意广告图片
  • 跟我一起做网站嘉兴做网站哪家好
  • 上海知名建站公司山东住房和建设庭网站
  • 深圳市城乡建设部网站首页平台设计方案怎么做
  • 深圳美食教学网站制作wordpress列表图显示标题
  • 怎么做网址导航网站沈阳高端做网站建设
  • 棋牌网站开发需要多少钱整网站代码 带数据 免费 下载
  • 网站建设 sql 模版猎头用什么网站做单
  • 河北保定建设工程信息网站wordpress 远程缓存
  • 手机网站开发之列表开发win7网站开发教程
  • 楚雄市住房和城乡建设局网站廊坊企业网站建设
  • 东莞规划局官方网站wordpress添加文章页不显示图片