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

定义

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

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

作用

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

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

示例:

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

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

2. 支持方法链调用

通过返回 *thisthis,可以支持链式调用(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
相关推荐
jieyucx5 小时前
Go语言深度解剖:Map扩容机制全解析(增量扩容+等量扩容+渐进式迁移)
开发语言·后端·golang·map·扩容策略
顾温5 小时前
default——C#/C++
java·c++·c#
凉茶钱6 小时前
【c语言】动态内存管理:malloc,calloc,realloc,柔性数组
c语言·c++·vscode·柔性数组
脏脏a6 小时前
【C++模版】泛型编程:代码复用的终极利器
开发语言·c++·c++模版
island13146 小时前
【C++仿Muduo库#3】Server 服务器模块实现上
服务器·开发语言·c++
散峰而望6 小时前
【算法竞赛】C/C++ 的输入输出你真的玩会了吗?
c语言·开发语言·数据结构·c++·算法·github
小龙报6 小时前
【C语言】内存里的 “数字变形记”:整数三码、大小端与浮点数存储真相
c语言·开发语言·c++·创业创新·学习方法·visual studio
深耕AI6 小时前
【VS Code避坑指南】点击Python图标提示“没有Python环境”,选择安装uv后这堆输出到底是什么意思?
开发语言·python·uv
刃神太酷啦6 小时前
扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
java·c语言·javascript·数据结构·c++·算法·leetcode
2301_789015626 小时前
C++:继承
c语言·开发语言·c++