C++ this指针(八股总结)

定义

this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。

当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用 this 指针。

作用

1.解决成员变量与函数参数同名的问题

当成员变量和函数参数同名时,可以用 this 指针来区分。

示例:

c++ 复制代码
class Example {
private:
    int value;

public:
    void setValue(int value) {
        this->value = value; // 使用 this 区分成员变量和参数
    }

2. 支持方法链调用

通过返回 *this 或 this,可以支持链式调用(method chaining)。

示例:

c++ 复制代码
#include <iostream>
using namespace std;

class Example {
private:
    int value;

public:
    Example& setValue(int v) {
        value = v;
        return *this; // 返回当前对象的引用
    }

    Example& increment() {
        value++;
        return *this; // 返回当前对象的引用
    }

    void display() {
        cout << "Value: " << value << endl;
    }
};

int main() {
    Example obj;
    obj.setValue(10).increment().display(); // 链式调用
    return 0;
}

输出:

复制代码
Value: 11
相关推荐
学逆向的7 小时前
C 突破编译器限制
c语言·开发语言·网络安全
jimy17 小时前
C++ 虚函数表:基类和派生类共用一张 vtable 吗?
开发语言·c++
爱吃提升7 小时前
Dev-C++ 5.11 C++断点调试完整教程
开发语言·c++
夜晚回家7 小时前
Python 原始字符串详解 | r 前缀到底让什么不再转义
开发语言·python
陈年老古董8 小时前
PyQt5 入门指南:环境搭建、PyCharm 外部工具配置与登录界面实战
开发语言·qt·pycharm
看浪的路人8 小时前
第7讲:大模型后端服务化——Go 实现高并发 LLM Proxy / Router / Fallback
开发语言·后端·golang
iCxhust8 小时前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
zhanghaha13148 小时前
Qt 类完整例程【逐词拆解 + 逐步骤执行保姆教程】
开发语言·qt
xlq223228 小时前
全面复习7
c++
code2cat9 小时前
Java进阶篇之AtomicReferenceFieldUpdater:用不可变快照替换整份状态
java·开发语言·cas