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

做微网站是订阅号还是服务号号怎么做网站关键词

做微网站是订阅号还是服务号号,怎么做网站关键词,wordpress手机网站模板制作,个人网站制作成品图片代码负责释放对象之前已经分配的资源,比如堆上的内存。在执行深拷贝之前,你需要确保对象不再引用之前的资源,以避免内存泄漏。通过删除先前的资源,你可以确保在进行深拷贝之前,已经释放了之前的资源,从而避…

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

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

假设你有一个自定义的类 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://www.yayakq.cn/news/587850/

相关文章:

  • 国内网站欣赏国外好的设计网站有哪些
  • 做微商代理去哪个网站西安知名网络推广公司
  • 开发公众号 微网站开发wordpress免费模板怎么使用
  • 家居网站建设哪家好免费网站seo诊断
  • 商城站到商城汽车站淘宝客不做网站可以做么
  • 用pycharm做网站觅知网免费素材图库
  • 全网展示型网站建设dw如何制作表格网页
  • 网站域名注册证书是什么asp企业建站系统
  • 网站页头设计门户网站做等级保护测评
  • 水产公司网站源码成都网站开发建设公司
  • 备案 网站名字本机建的网站打开却很慢
  • 什么能建我的网站呢外贸seo优化
  • 一起做网站女装夏季裙开发app费用
  • 安康市建设局网站企业网站建设分工
  • 中国建设网站首页邯郸招聘信息网
  • 惠州网站建设推广威县做网站哪家好
  • 动物做logo的网站给公司做网站 图片倾权
  • 成都网站建设爱特通网店代运营合同模板
  • 广东免费建站公司公关团队
  • 做微信公众平台的网站网站流量突然增大
  • 网站搜索建设it外包公司是做什么的
  • 2021手机能看的网站西安未央区今天出啥事了
  • 网站建设视频教程免费下载对于网站建设的体会
  • 杭州设计公司招聘福州seo按天收费
  • 做沙盘实训在哪个网站做邯郸做wap网站找谁
  • 网站开发毕业设计代做网站开发总结标题
  • 关键词挖掘站网重庆 建网站
  • 南昌网站建设哪家好wordpress 软件价格
  • 怎么做网站动态框杭州百度推广
  • 广州市网站制作梵客家装和业之峰家装哪个好