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

上海做外贸网站的公司智慧团建网站登陆平台

上海做外贸网站的公司,智慧团建网站登陆平台,别人品牌的域名做网站吗,百度seo点击器前言#xff1a; 如果一个类中什么成员都没有#xff0c;简称为空类。 空类中真的什么都没有吗#xff1f;并不是#xff0c;任何类在什么都不写时#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数#xff1a;用户没有显式实现#xff0c;编译器会生成的…前言 如果一个类中什么成员都没有简称为空类。 空类中真的什么都没有吗并不是任何类在什么都不写时编译器会自动生成以下6个默认成员函数。 默认成员函数用户没有显式实现编译器会生成的成员函数称为默认成员函数。 一、构造函数 1、概念 构造函数是特殊的成员函数需要注意的是构造函数虽然名叫做构造但是构造函数的主要任务并不是开空间创建对象而是初始化对象。 2、特征 函数名与类名相同。无返回值对象实例化时编译器自动调用对应的构造函数构造函数可以重载如果类中没有显示定义构造函数则C编译器会自动生成一个无参的默认构造函数一旦用户显示定义编译器将不再生成。 下面代码构造函数与缺省参数结合非常实用 #includeiostream using namespace std; class date { private:int _year;int _month;int _day; public://函数名与类名相同。无返回值date(int year 2023, int month 1, int day 1){_year year;_month month;_day day;}void Print(){cout _year - _month - _day;} };int main() {date a;date _a(1, 2, 3);a.Print();return 0; } 但此时如果把自己定义的构造函数删除默认生成构造函数但是不会自己初始化。 3、默认生成的构造函数到底有什么用 处理自定义回去调用这个成员的默认构造函数但对于内置类型不确定看编译器建议不处理。 比如上面是自定义类型就会自己调用Stack的默认构造函数 默认构造函数的概念 我们不写显示构造函数编译器默认生成的构造函数叫默认构造无参构造函数也可以叫默认构造全缺省也可以叫默认构造 小总结 内置类型成员不做处理自定义类型会去调用它的默认构造。 所以对于内置类型还是需要程序员自己去创建构造函数而对于自定义类型会自动调用这个成员的默认构造函数其实还是自己创建的构造函数 内置类型int/double/……注意指针都是内置类型自定义类型class/struct 其实上面的构造函数并不好对于自定义类型和构造类型区别对待在C11中会支持对内置类型的初始化在private声明的时候进行初始化。支持声明时给缺省值 总结 一般情况下我们都要自己写构造函数内置类型都不处理成员都是自定义类型或者声明时给了缺省值可以考虑让编译器自己生成构造函数 可以不传参数就调用构造都可以叫默认构造这三个函数不能同时存在只能存在一个 二、析构函数 1、概念 与构造函数功能相反析构函数不是完成对对象本身的销毁局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数完成对象中资源的清理工作。 2、特性 析构函数名是在类名前加上字符~无参数无返回值类型一个类只能有一个析构函数。若未显示定义系统会自动生成默认的析构函数。注意析构函数不能重载对象生命周期结束时C编译系统自动调用析构函数。 3、功能 对象销毁不需要析构函数对象的销毁靠系统更本质一点是函数栈帧的销毁而析构函数的作用是处理动态开辟的空间比如栈开辟的动态的空间。 我们如果不写析构函数那系统自动默认生成的析构函数不会把开辟的指针处理 默认生成析构函数行为跟构造类似内置类型成员不做处理自定义类型成员会去调用他的析构 三、拷贝构造函数 概念 我们在创建对象时创建一个与已经存在对象一模一样的新对象。 那我们为什么要创建一个与已经存在的对象一模一样的新对象呢 问题 举个例子 下面的程序会报错。 我们已经在上一章学习过了析构函数析构函数的作用是处理动态开辟的空间比如栈开辟的动态的空间。下图是栈的析构函数。 我们来分析一下因为上面的函数是传值传参而形参是实参的一份临时拷贝所以本来st1中含有的_a空间而st中也复制拷贝了一份st中同样的_a也指向了相同动态开辟数组a的空间而析构函数会自动清理动态开辟的空间所以在fun2函数调用后会将动态开辟的a的空间释放将其变成空指针而在主函数调用后也会调用析构函数所以就会造成空间的二次释放 所以值拷贝/浅拷贝对栈这些类是有风险的那我们如何解决这一问题呢 规定自定义类型对象拷贝的时候调用一个函数这个函数就叫做拷贝构造。 拷贝构造函数只有单个形参该形参是对本类类对象的引用一般常用const修饰 为什么一定是引用 因为不是引用如果是传值拷贝会引发无穷递归调用。 下面是日期的拷贝构造函数是浅拷贝。 Date(const Date d){_year d._year;_month d._month;_day d._day;} 对于日期这样的类编译器自动生成的默认拷贝构造函数浅拷贝/值拷贝就可以解决问题。 但是我们祖师爷创建拷贝构造函数的目的就是针对栈、队列等自定义类型中需要我们自己创建的空间被析构两次的问题。 调用顺序就是如果传值传参会调用拷贝构造然后再调用func函数 解决方法 下面是栈的拷贝构造函数 所以会创建一个相同资源的空间分别析构就不会造成统一空间被析构两次的问题了。 总结 内置类型成员完成值拷贝Data自定义类型成员调用这个成员的拷贝构造MyQueueStack需要自己写拷贝构造完成深拷贝顺序表、链表、二叉树等自己创建空间的类都需要深拷贝
http://www.w-s-a.com/news/953325/

相关文章:

  • 上海商务网站建设如何做的网站手机可以用吗
  • 产品推广营销方案seo推广员招聘
  • 做水利网站需要多少钱山东市网站建设
  • 做网站找哪里如何修改wordpress颜色
  • 招商加盟网站系统站长工具 seo查询
  • 工商局网站清算组备案怎么做电商培训机构
  • 做好门户网站建设做本地团购网站怎么样
  • wordpress主题和预览不同20条优化防疫措施方案
  • 艾奇视觉网站建设网站推广需要几个人做
  • 2008 iis 添加网站wordpress固定链接标签加上页面
  • 宁波企业网站制作推荐网站优化人员
  • 大型资讯门户网站怎么做排名沈阳建设工程有限公司
  • 开发中英文切换网站如何做江苏网站建设费用
  • 网站论文首页布局技巧桥东网站建设
  • 网站开发项目经理工资北京微信网站
  • 山西山西省建设厅网站微信备份如何转换为wordpress
  • 同城网站开发实用网站模板
  • 郑州做网站哪家公司好国外购买空间的网站有哪些
  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6
  • 网站域名后缀有什么用网站建设的投资预算怎么写
  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话