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

网站上传后 后台进不去企业科技网站建设

网站上传后 后台进不去,企业科技网站建设,汕头市住房和城乡建设局,雅安做网站的公司文章目录 1. 类的默认成员函数2. 构造函数3. 拷贝构造函数3.1 传值传参3.2 传值返回3.3 深拷贝和浅拷贝3.4 总结 4. 析构函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 日期类的实现 6. 取地址运算符重载6.1 const 成员函数6.2 取地址运算符重载 1. 类的默认成员函… 文章目录 1. 类的默认成员函数2. 构造函数3. 拷贝构造函数3.1 传值传参3.2 传值返回3.3 深拷贝和浅拷贝3.4 总结 4. 析构函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 日期类的实现 6. 取地址运算符重载6.1 const 成员函数6.2 取地址运算符重载 1. 类的默认成员函数 默认成员函数就是用户没有显式实现编译器会自动生成的成员函数被称为默认成员函数一个类我们不写的情况下编译器会生成6个默认成员函数最重要的是前4个最后两个仅做了解 2. 构造函数 构造函数是特殊的成员函数且它的主要任务并不是开空间创建对象(我们经常使用的局部对象是栈帧创建时空间就已经开好了)而是对象实例化时初始化对象就像我们实现栈Stack时用的初始化函数Init()一样 构造函数的特点1. 构造函数的函数名与类名相同2. 构造函数无返回值也不需要void3. 构造函数可以重载4. 对象实例化时系统会自动调用对应的构造函数 如果类中没有显式定义构造函数则C编译器会自动生成一个无参的默认构造函数一旦用户显式定义那么编译器则不再生成默认构造函数分为3种无参构造函数、全缺省构造函数、我们不写编译器默认生成的构造函数默认构造函数有且仅有一个存在不能同时存在不传实参就可以调用的构造函数就是默认构造函数我们不写编译器默认生成的构造函数对内置类型成员变量的初始化没有要求是否初始化看编译器而对于自定义类型的成员变量要求调用这个成员变量的构造函数时初始化如果自定义类型的成员变量没有默认构造函数编译器就会报错之后我们想初始化该成员变量就得借助初始化列表这个后面讲 3. 拷贝构造函数 拷贝构造函数:构造函数的第一个参数是自身类的类型引用并且其他额外的参数都有默认值该构造函数就是拷贝构造函数C规定拷贝构造函数使用场景自定义类型对象进行拷贝必须调用拷贝构造函数自定义传值传参和传值返回都需要调用拷贝构造函数拷贝构造函数是构造函数的一个重载拷贝构造函数的参数只有一个那就是类的类型对象的引用如果使用传值调用编译器会报错,因为传值调用会造成无穷递归对于内置类型编译器会自己调用它的拷贝构造函数不需要我们显式的实现拷贝构造主要针对自定义类型对象的拷贝 3.1 传值传参 这里Date d2(d1)d1和d2都是自定义类的类型对象因此两者之间拷贝需要调用拷贝构造函数 为啥拷贝构造函数的第一个参数需要引用符呢这是因为如果采取传值传参的形式再传值传参之前需要先调用拷贝构造函数Date d(d1)而拷贝构造函数又要传值传参继续调用它的拷贝构造函数Date d(d1)而拷贝构造函数又是传值传参继续调用它的拷贝构造函数Date d(d1)形成无穷递归如果采取传指针传参的形式也可以避免死递归的情况但是在C里面加入引用后引用比指针方便许多安全许多还不用开辟空间故而一般用引用传参 那么为什么拷贝构造函数的第一个参数前面const修饰呢 3.2 传值返回 引用返回和值返回的区别 3.3 深拷贝和浅拷贝 浅拷贝一般编译器自己实现的拷贝构造就是浅拷贝一个一个字节的拷贝例如值拷贝或者地址拷贝它会将一个指针变量存放的地址作为值也拷贝给另一个指针变量这样就出现两个指针指向同一个地址深拷贝对于拷贝构造的对象它指向一块与源对象不同的空间但空间大小和存放的内容相同 浅拷贝 深拷贝 总结我们想要实现的是来自两个不同空间的对象将其中一个对象里面的资源内容拷贝到另一个对象里面而不是连带地址一起拷贝过去那么就用深拷贝对于深拷贝而言一个对象内容的改变不会影响另一个对象而浅拷贝恰恰相反 3.4 总结 对于上述提到的Date类它只有内置类型因此编译器默认生成的拷贝构造函数就够用对于类Stack虽然它的成员变量也都是内置类型但是_arr指向了开辟的空间编译器默认生成的拷贝构造函数是浅拷贝它会将变量的地址也拷贝过去造成后续析构函数连续释放两次同一块内存空间的资源对于类MyQueue的拷贝构造由于Stack的拷贝构造已经显式写出那么这里就可以不写因为编译器默认生成的MyQueue拷贝构造也是调用Stack的拷贝构造 4. 析构函数 析构函数与构造函数不同它不是对对象本身的销毁比如局部对象是存在在栈中的函数结束栈销毁它就释放了。析构函数主要用来完成对对象中资源的清理工作C规定对象在销毁时会自动调用析构函数构造函数和析构函数就像之前写的Init()和Destroy()函数析构函数的特点1. 析构函数是在类名前加 ~2. 无参数无返回值(也不需要写void)3. 一个类只能有一个析构函数若未显式定义编译器会默认生成默认的析构函数4. 对象生命周期结束系统会自动调用析构函数5. 跟构造函数类似编译器生成的默认构造函数对内置类型成员不做处理但是自定义类型的成员会调用它们的析构函数6. 不论我们是否显式的写析构函数。对于自定义类型成员编译器都会调用它们的析构函数7. 如果类中没有申请资源时可以不写使用编译器默认的析构函数如果默认生成的析构函数就够用也可以不写但是对于有资源申请的类一定要写析构函数避免会造成资源泄露8. 一个局部域的多个对象C规定先定义的后析构 总结对于有申请资源的类析构函数一定要自己写对于自定义类型成员不论我们写不写析构函数编译器都会调用它们的析构函数就像MyQueue前提是它的成员Stack的析构函数已经定义了且析构函数在一个类中有且仅有一个 5. 赋值运算符重载 5.1 运算符重载 运算符用于内置类型时不需要重载而当运算符用于类类型的对象时必须换成对应的运算符重载运算符重载是一个具有特殊名字的函数关键字是operator后面要定义的运算符和其他函数一样它也有返回类型和函数参数以及函数体operator定义的运算符重载函数的参数至少有一个是类类型 运算符重载的参数个数应与源运算符的操作数个数相同.一元运算符有一个参数二元运算符有两个参数二元运算符的左侧运算对象传给第一个参数右侧运算符对象传给第二个参数一元运算符例如*p、a等它们只有一个参数二元运算符例如ab、a^b等它们有两个参数如果一个重载运算符的函数是成员函数那么它的第一个运算对象默认传给隐式的this指针因此重载运算符作为成员函数时它的参数比运算对象少一个 访问类的私有成员变量除了上面的运算符重载作为成员函数外还可以间接访问 运算符重载之后其优先级和结合性与对应的内置类型运算符保持一致不能通过语法中没有的符号来创建新的操作符例如operator5个不能重载的运算符.*   ::   sizeof  ?:   .. *用来作为访问成员函数的操作符 5.2 赋值运算符重载 赋值运算符重载是一个默认成员函数用于完成两个已经存在的对象直接的拷贝赋值赋值运算符重载与拷贝构造有异曲同工之妙但是两者作用的对象不同拷贝构造是将一个已经存在的对象拷贝赋值给创建的对象赋值运算符重载是一个运算符重载规定重载必须为成员函数参数建议const修饰避免传值传参产生拷贝和错误赋值等操作如果赋值运算符重载有返回值建议写成类类型的引用减少拷贝提高效率也是为了支持连续赋值若没有显式写赋值运算符重载编译器会默认生成一个默认赋值运算符重载该默认赋值运算符重载与默认拷贝构造类似也会产生深拷贝和浅拷贝的问题对自定义类型的成员变量会调用它的赋值运算符重载若返回的是*this,则它返回的其实是运算符左边的对象因为*this就是左值对象 浅拷贝 深拷贝 对于Stack类的对象由于它是自定义类型我们需要显式的写赋值运算符重载而对于MyQueue类自定义的对象则不需要写因为编译器生成的默认赋值运算符重载会调用Stack里面的赋值运算符重载 5.3 日期类的实现 一个类重载的运算符要有意义例如Date类的operator-具有意义而operator就没有意义因为日期的加法运算需要特殊处理满30天月份进1等而减法则代表差多少天重载运算符时C为了区分前置和后置规定后置重载时增加一个int形参跟前置构成函数重载容易区分 类里面的成员函数之间也可以相互调用 前置和后置、前置- -和后置- - 日期相减 重载和运算符时需要重载为全局函数若重载为成员函数this指针会占用第一个形参位置而第一个形参是左侧运算对象调用时就变成了对象cout不符合使用习惯和可读性。重载为全局函数把ostream/istream放到第一个形参的位置就可以了第二个参数位置当类类型对象 优化重载运算符和的函数声明需要写在全局写在类里面this指针会占用第一个参数的位置不符合语法习惯 6. 取地址运算符重载 6.1 const 成员函数 const修饰的成员函数为const成员函数一般const放置在函数参数后面const实际修饰的是该成员函数的this指针表明在该成员函数中对类的成员不做修改建议不对成员变量修改的成员函数都const修饰 6.2 取地址运算符重载 取地址运算符分为普通取地址和const修饰的取地址运算符一般编译器默认生成的就够用了一般不会显示去实现除非一些特殊的场景比如不想让被人取到当前类对象的地址可以显示写随便返回一个地址
http://www.ho-use.cn/article/10813741.html

相关文章:

  • 深圳外贸网站制作自媒体wordpress主题
  • 游戏网站代理app网站设计制作
  • 景区网站建设的好处工信部网站查询
  • 中国建设网站的公司戴尔公司网站建设成功的关键是什么
  • 哪个网站可以做魔方图片大全宿州城乡建设局网站
  • 哈尔滨 做网站凡客诚品还经营吗
  • wordpress建的网站如何跟微信集成项目概述
  • 怎么制作网站来赚钱国外网站做网站主播
  • 网站推广的基本手段有哪些ui网页设计成都培训
  • php网站开发个人简历国内近期新闻热点大事件
  • 信息化设计公司排名厦门seo排名扣费
  • 设计制作商城网站html网页设计期末考试
  • 自学网站建设基本流程做网站公司怎么样
  • 网站建设报价选兴田德润毕业设计静态网站建设选题依据
  • 网站设计论文html中国最强十大私企
  • 电影网站建设费用广中路街道网站建设
  • 创造网站需要什么条件网站怎样维护
  • 让别人访问我的网站制作书签的作文
  • 网站开发制作费用网站制作公司兴田德润简介
  • 深圳网站建设主页泰州seo网络推广
  • 网站,商城,app 建设wordpress文章添加返回目录
  • 要做一个网站得怎么做阿里云网站建设的功能
  • 室内设计网站配色app北京做网站哪个好
  • 怎样建设打字网站本周新闻热点10条2021
  • 在欣欣网上做网站效果如何wordpress产品演示
  • 购物网站开发需要什么软件网络科技公司劳动合同
  • pos机做网站推广网站做的和别人一样违法
  • 服务器分配网络提高网站访问速度企业管理咨询论文
  • 网站建设 技术支持 阿里温州网站制作网站
  • 怎么给网站做备份呢温州网站制作的公司