当前位置: 首页 > 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指针

相关文章:

  • 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系列】
  • 杭州知名网站建设/美发培训职业学校
  • 久就建筑网/西安seo外包服务
  • 外贸网站用什么字体/济宁百度竞价推广
  • 日本做爰动漫网站/新闻最近的大事10件
  • 即墨建设局网站/学校招生网络营销方案
  • php做的网站源代码在哪里/百度移动权重