首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ -赋值给'this‘不合时宜

C++中赋值给'this'不合时宜是指在类的成员函数中将'this'指针赋值给其他变量或者传递给其他函数。这种做法是不推荐的,因为'this'指针是一个常量指针,指向当前对象的地址,用于在成员函数中访问对象的成员变量和成员函数。

赋值给'this'不合时宜的原因有以下几点:

  1. 'this'指针是一个常量指针,其值在对象的生命周期中是不会改变的。将'this'赋值给其他变量或传递给其他函数可能会导致错误的结果或未定义的行为。
  2. 'this'指针的作用是在成员函数中访问对象的成员变量和成员函数。如果将'this'赋值给其他变量,可能会导致代码的可读性和可维护性降低,增加代码的复杂性。
  3. C++编译器会自动将成员函数的参数列表中添加一个隐藏的'this'指针,用于指向当前对象。因此,在成员函数中可以直接使用成员变量和成员函数,无需显式地赋值给'this'。

正确的做法是在成员函数中直接使用'this'指针访问对象的成员变量和成员函数,而不是将其赋值给其他变量或传递给其他函数。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云CVM(云服务器):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云原生容器服务TKE:https://cloud.tencent.com/product/tke
  • 腾讯云人工智能平台AI Lab:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台IoT Hub:https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发平台MPS:https://cloud.tencent.com/product/mps
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务BCS:https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化变量 | 将 “ 匿名对象 “ 赋值变量 )

    C++ 编译器 发现 使用 匿名对象 时 , 会根据 匿名对象 的用法 , 决定对 匿名对象的 处理 ; 匿名对象单独使用 : 如果只是单纯的使用 匿名对象 , 没有涉及到 将 匿名对象 赋值其它变量...: 如果 创建 匿名对象 后 , 还使用 匿名对象 为 已存在的变量 赋值 , 此时 编译器 会将 匿名对象 的值赋值 已存在的变量 , 并且立刻销毁该匿名对象 ; 一、将 " 匿名对象 " 初始化变量...Student s 变量 ; // 创建匿名对象, 并将其赋值变量 Student s = Student(12, 170); C++ 编译器识别到上述操作后 , 会将 匿名对象 转为 变量名为 s...二、将 " 匿名对象 " 赋值变量 ---- 1、使用匿名对象进行赋值操作 " 匿名对象 " 创建后有两种用法 , 一种是用于为 变量 进行初始化操作 , 该操作直接将 匿名对象 转为 普通对象 ,...不涉及 匿名对象 销毁操作 ; 另外一种就是将 匿名对象 赋值 已存在的变量 , C++ 编译器会进行如下处理 : 首先 , 读取 匿名对象 的值 , 将值赋值已存在的变量 , 然后 , 销毁 匿名对象

    37820

    12.6 C++对象的赋值

    C++对象的赋值C++中,如果一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值。 对象之间的赋值也是通过赋值运算符=进行的,赋值的过程是通过成员复制来完成的。...对象的赋值只对其中的数据成员赋值,而不对成员函数赋值,类的数据成员中不能包括动态分配的数据,否则在赋值时可能会报错。...C++对象的复制 在C++中,常需要将对象在某一瞬时的状态保留下来,此时就需要对象的复制,用已有的对象快速地复制出多个完全相同的对象。...C++还提供另一种复制形式,用赋值号代替括号,其一般形式为 类名 对象名1 = 对象名2; 可以在一个语句中进行多个对象的复制,这种形式与变量初始化语句类似,用起来更方便。...C++静态成员 在C++中,如果一个程序文件中有多个函数,在每一个函数中都可以改变全局变量的值,全局变量的值为各函数共享。

    1K30

    python pandas VS excel成绩赋值等级

    pandas VS excel成绩赋值等级 【问题】有一张成绩表如下 【要求】 在总分后面添加一列,按如下要求输入等级 【知识点】 apply函数 apply函数是`pandas`里面所有函数中自由度最高的函数...DataFrame.apply(func, axis=0,broadcast=False, raw=False, reduce=None, args=(), **kwds) 该函数最有用的是第一个参数,这个参数是函数,相当于C/C+...这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果..."B" elif score>=60: return "C" else: return "D" d=pd.read_excel('pandas VS excel成绩赋值等级...) print(d) d['等级']=d['总分'].apply(lambda x: get_letter_grade(x)) print(d) d.to_excel('pandas VS excel成绩赋值等级

    2.2K10

    es6的解构赋值_字符串赋值字符指针

    ES6 模板字符串与解构赋值 解构赋值 展开运算符 模板字符串 特点 模板字符串可以换行 模板字符串中变量表达方式 ${变量/表达式} //模板字符串 //特点...document.createElement('ul'); ul.innerHTML=arry.join(''); document.body.appendChild(ul); 解构赋值...特点: 可以定义默认值 可以嵌套 可以不完全解构 好处: 不通过遍历,方便快捷的将元素取出来 //解构赋值 //可以定义默认值 //可以嵌套 //可以不完全解构...//数组用法 let a=[1,2,3] let [b,c,d]=a; console.log(b,c,d)//1,2,3 //数组解构赋值时可以嵌套 let s=[[1,2...],[3,4]] let [[s1,s2],[s3,s4]]=s; console.log(s1,s2,s3,s4)//1,2,3,4 //数组解构赋值可以定义默认值 let b1=[1,2,3

    2.3K20
    领券