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

cpp this指针

  • 在 C++ 中,this 指针是一个特殊的指针,它指向当前对象的实例。
  • 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。
  • this是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。
  • 当一个对象的成员函数被调用时,编译器会隐式地传递该对象的地址作为 this 指针。在成员函数中的形参样式为:class_name* const this
  • 友元函数没有 this 指针,因为友元不是类的成员,只有成员函数才有 this 指针。
  • 静态成员函数(static)属于类,不关联任何对象实例,因此没有 this 指针

核心作用

1.避免命名冲突

class Rectangle {
private:double width;  // 成员变量double height; // 成员变量
public:Rectangle(double width, double height) {this->width = width;   // this->width 是成员变量,width 是参数this->height = height; // this->height 是成员变量,height 是参数}
};

2.返回当前对象的引用(链式调用)

class StringBuilder {
private:std::string str;
public:StringBuilder& append(const std::string& s) {str += s;return *this;  // 返回当前对象的引用}StringBuilder& reverse() {std::reverse(str.begin(), str.end());return *this;}std::string get() const { return str; }
};int main() {StringBuilder sb;sb.append("Hello").append(" ").append("C++").reverse();  // 链式调用std::cout << sb.get() << std::endl;  // 输出:++C olleHreturn 0;
}

this 指针是 C++ 中实现 “对象成员函数操作自身状态” 的核心机制,其本质是指向当前对象的隐式指针。它解决了成员变量与参数的命名冲突、支持链式调用、确保 const 成员函数的逻辑不变性,并区分不同对象实例的状态。

在 C++ 中,成员函数内部访问成员变量时,this-> 是隐式存在的,因此在没有命名冲突的情况下,省略 this-> 完全不影响代码的运行效果。

参考:

this指针

http://www.dtcms.com/a/224612.html

相关文章:

  • Python训练第四十天
  • 「Java教案」数据类型、变量与常量
  • Linux系统-基本指令(4)
  • Linux搭建DNS服务器
  • 基于FashionMnist数据集的自监督学习(生成式自监督学习AE算法)
  • C++基础算法————贪心
  • 那些常用的运维工具
  • b. 组合数
  • C++:参数传递方法(Parameter Passing Methods)
  • 用户认证的魔法配方:从模型设计到密码安全的奇幻之旅
  • HackMyVM-First
  • Linux【工具 04】Java等常用工具的多版本管理工具SDKMAN安装使用实例
  • SpringBoot整合MyBatis完整实践指南
  • Android任务栈管理策略总结
  • # CppCon 2014 学习: Quick game development with C++11/C++14
  • 构建多模型协同的Ollama智能对话系统
  • WEB3——为什么做NFT铸造平台?
  • 2025.5.29 学习日记 docker概念以及基本指令
  • 算法:滑动窗口
  • MySQL项目实战演练:搭建用户管理系统的完整数据库结构【MySQL系列】
  • 如何实现一个请求库?【面试场景题】
  • 牛客小白月赛117
  • 实施ESOP投入收益研究报告
  • 趋势直线指标
  • C语言学习——C语言强制类型转换2023.12.20
  • 【Java学习笔记】内部类(重点)
  • 最小二乘准则例题
  • 22睿抗省赛真题
  • 电脑重装或者开机出现错误
  • 【Oracle】TCL语言