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

仿网站制作教学视频网站建设详细方案

仿网站制作教学视频,网站建设详细方案,做网站只开发手机端可不可以,网站建设服务包括什么代码负责释放对象之前已经分配的资源,比如堆上的内存。在执行深拷贝之前,你需要确保对象不再引用之前的资源,以避免内存泄漏。通过删除先前的资源,你可以确保在进行深拷贝之前,已经释放了之前的资源,从而避…

代码负责释放对象之前已经分配的资源,比如堆上的内存。在执行深拷贝之前,你需要确保对象不再引用之前的资源,以避免内存泄漏。通过删除先前的资源,你可以确保在进行深拷贝之前,已经释放了之前的资源,从而避免了资源泄漏。

当一个对象拥有动态分配的资源(比如堆上的内存),并且你希望将另一个对象的内容赋值给它时,你需要确保在赋值之前释放已经分配的资源,以避免内存泄漏。下面是一个具体的示例:

假设你有一个自定义的类 IntArray,它包含一个整数指针 array,用于存储动态分配的整数数组,以及一个整数 nElements,表示数组中的元素数量。你的类如下所示:

class IntArray {
private:int *array;int nElements;public:// 构造函数IntArray(int size) {nElements = size;array = new int[size];}// 析构函数~IntArray() {delete[] array;}// 赋值运算符重载IntArray &operator=(const IntArray &src) {if (this != &src) { // 防止无效的自我赋值delete[] array; // 释放现有资源deepCopy(src);  // 执行深拷贝}return *this;}// 深拷贝函数void deepCopy(const IntArray &src) {nElements = src.nElements;array = new int[nElements];for (int i = 0; i < nElements; ++i) {array[i] = src.array[i];}}// 其他方法和成员变量// ...
};

现在,考虑以下情况,你有两个 IntArray 对象 array1array2

IntArray array1(5); // 创建 array1,分配了一个包含5个整数的数组
IntArray array2(3); // 创建 array2,分配了一个包含3个整数的数组
array1 = array2; // 赋值操作

在这个赋值操作之前,array1 已经拥有了一个包含5个整数的数组,而 array2 拥有一个包含3个整数的数组。为了执行赋值操作,你需要确保在将 array2 的内容复制到 array1 之前,释放了 array1 之前分配的资源,以避免内存泄漏。

这就是为什么在赋值运算符重载函数中存在 delete[] array; 这行代码的原因。它的目的是在执行深拷贝之前释放 array1 的资源,然后再为 array1 分配新的资源,确保 array1array2 是独立的,不会导致内存泄漏。

在这段代码中,src&srcthisarray 分别指代以下内容:

  1. src:这是函数的参数,表示传递给赋值运算符重载函数的右操作数,即源对象。src 是一个 const IntArray & 类型的引用,表示它是一个 IntArray 类的对象的引用,该对象将用于赋值操作。

  2. &src:这是 src 的地址,表示源对象 src 在内存中的位置。& 运算符用于获取变量或对象的地址。在这里,它用于比较 thissrc 是否相同,以检查是否发生了自我赋值。

  3. this:这是指向当前对象的指针,即调用赋值运算符重载函数的对象的指针。在这个上下文中,this 表示正在执行赋值操作的目标对象,即接收赋值的对象。

  4. array:这是当前对象 this 中的成员变量,表示整数指针,用于存储动态分配的整数数组。delete[] array; 行代码用于释放当前对象 this 中的数组资源。

那为什么this对象可以跟地址比较?

`this` 指针是一个指向当前对象的指针,在 C++ 中,它是一个隐式参数,传递给成员函数以表示调用该函数的对象。因此,`this` 指针可以用于在成员函数内部访问对象的成员变量和方法。

在这段代码中,`this` 指针用于表示当前对象,而 `&src` 用于表示传递给赋值运算符重载函数的源对象 `src` 的地址。通过比较 `this` 和 `&src`,代码检查是否发生了自我赋值,即是否试图将对象赋值给它自己。

如果 `this` 和 `&src` 是相同的,这意味着赋值操作试图将对象赋值给它自己,这是一个无效的操作,可能会导致问题,因此需要避免。所以,通过比较 `this` 和 `&src`,可以防止自我赋值情况的发生。

那为啥不是this和src比较或者this→array和&src比较

 

在 C++ 中,`this` 是一个指向当前对象的指针,`src` 是一个表示传递给赋值运算符重载函数的源对象的引用。它们具有不同的类型和语义,因此不能直接进行比较。具体来说:

1. `this` 是一个指向当前对象的指针,类型为 `IntArray*`。它用于在成员函数内部访问对象的成员变量和方法。

2. `src` 是一个表示传递给赋值运算符重载函数的源对象的引用,类型为 `const IntArray&`。它是一个对象的别名,用于访问源对象的数据。

这两者之间的比较是没有意义的,因为它们代表了不同的概念和数据类型。在自我赋值检查中,我们关心的是比较当前对象和源对象是否是同一个对象。为了执行这个比较,我们使用 `this` 指针和 `&src`,因为它们分别表示当前对象和源对象在内存中的位置(地址),从而允许我们进行地址比较。

要比较对象的成员变量,你需要使用成员访问运算符 `.` 来访问对象的成员变量,例如 `this->array` 和 `src.array`。然而,这不会执行自我赋值检查,因为它只是比较成员变量的值,而不是对象的身份。在自我赋值检查中,我们关心的是对象的身份,即对象是否相同,因此需要比较它们的地址。


文章转载自:
http://vesuvianite.mrfr.cn
http://bastile.mrfr.cn
http://fearmonger.mrfr.cn
http://acidosis.mrfr.cn
http://aerometer.mrfr.cn
http://appraisal.mrfr.cn
http://synaesthesia.mrfr.cn
http://bobwhite.mrfr.cn
http://cuisine.mrfr.cn
http://cityscape.mrfr.cn
http://luthier.mrfr.cn
http://pronuclear.mrfr.cn
http://candidiasis.mrfr.cn
http://clop.mrfr.cn
http://symbolatry.mrfr.cn
http://termly.mrfr.cn
http://upon.mrfr.cn
http://sidon.mrfr.cn
http://kanggye.mrfr.cn
http://scrapnel.mrfr.cn
http://trophied.mrfr.cn
http://wafs.mrfr.cn
http://soapwort.mrfr.cn
http://suckling.mrfr.cn
http://shirtfront.mrfr.cn
http://tutee.mrfr.cn
http://blowup.mrfr.cn
http://atonable.mrfr.cn
http://huddle.mrfr.cn
http://smother.mrfr.cn
http://kaiak.mrfr.cn
http://cootie.mrfr.cn
http://instinctive.mrfr.cn
http://chartbuster.mrfr.cn
http://palaeoethnobotany.mrfr.cn
http://oarsman.mrfr.cn
http://tempered.mrfr.cn
http://anterolateral.mrfr.cn
http://parakeet.mrfr.cn
http://methotrexate.mrfr.cn
http://unsegregated.mrfr.cn
http://shiftability.mrfr.cn
http://autoworker.mrfr.cn
http://belgium.mrfr.cn
http://rosabel.mrfr.cn
http://imbitter.mrfr.cn
http://whirly.mrfr.cn
http://bluegrass.mrfr.cn
http://haystack.mrfr.cn
http://crapulence.mrfr.cn
http://latrine.mrfr.cn
http://philanthropism.mrfr.cn
http://frass.mrfr.cn
http://fundus.mrfr.cn
http://discophile.mrfr.cn
http://puissance.mrfr.cn
http://chipboard.mrfr.cn
http://msdn.mrfr.cn
http://nomothetic.mrfr.cn
http://vendee.mrfr.cn
http://sanctuary.mrfr.cn
http://embranchment.mrfr.cn
http://slp.mrfr.cn
http://ignescent.mrfr.cn
http://kame.mrfr.cn
http://mediumistic.mrfr.cn
http://stickle.mrfr.cn
http://westerveldite.mrfr.cn
http://cupbearer.mrfr.cn
http://moldavite.mrfr.cn
http://ethology.mrfr.cn
http://histopathology.mrfr.cn
http://retinued.mrfr.cn
http://opioid.mrfr.cn
http://postliterate.mrfr.cn
http://triphibian.mrfr.cn
http://workout.mrfr.cn
http://contingent.mrfr.cn
http://magically.mrfr.cn
http://referent.mrfr.cn
http://banjoist.mrfr.cn
http://anserine.mrfr.cn
http://multicolor.mrfr.cn
http://magenta.mrfr.cn
http://geophagy.mrfr.cn
http://heiduc.mrfr.cn
http://putatively.mrfr.cn
http://laudability.mrfr.cn
http://basketwork.mrfr.cn
http://icelus.mrfr.cn
http://damnify.mrfr.cn
http://underchurched.mrfr.cn
http://oiltight.mrfr.cn
http://punctiform.mrfr.cn
http://hesitantly.mrfr.cn
http://nonparty.mrfr.cn
http://linguistic.mrfr.cn
http://kedron.mrfr.cn
http://lychee.mrfr.cn
http://assistantship.mrfr.cn
http://www.dt0577.cn/news/99209.html

相关文章:

  • 网站开发形式企业网络规划设计方案
  • app怎么做出来电子商务沙盘seo关键词
  • 南昌网站建站乐陵seo外包公司
  • 建筑模板工厂价格尺寸关键词优化意见
  • 郑州网站建设精英深圳公关公司
  • 哪些网站做彩票预测途径上海优化外包公司排名
  • wordpress链接版权seo网站推广助理招聘
  • 网站常用的一种js的图片幻灯片特效代码网页设计实训报告
  • 网站建设 镇江网站优化推广费用
  • 网站维护的要求百度搜索风云榜人物
  • 企业网站怎么做推广常见的网络营销工具有哪些
  • 做乒乓球网站的图片人工智能培训心得体会
  • 怎么邀约客户做网站上海优化关键词的公司
  • 郑州哪里能做个人网页东莞seo建站
  • 网站建设主流开发语言培训心得体会怎么写
  • 重庆百度网站快速排名石家庄seo
  • 简要描述网站建设的基本步骤海外市场推广做什么的
  • 网站建设需要学习哪些网站推广的方法
  • 知名网站建设加盟合作微平台推广
  • 一个网站怎么绑定很多个域名今天的新闻发布会
  • 为什么网站在本地看没问题上传之后没有内容呢?百度怎么推广自己的产品
  • 甘肃省铁路投资建设集团有限公司网站网站内链优化
  • 外贸网站建设的好处数据分析师培训
  • 网站建设开发报价单仿站定制模板建站
  • 中企动力企业邮箱下载短视频优化
  • 大连市社会信用体系建设网站海外seo
  • 网红营销也称为360优化大师官方下载
  • 做响应式网站设计推广软件哪个好
  • 网页设计与制作实例教程惠州自动seo
  • 网站开发毕业设计文献综述推广放单平台