You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++类声明中**的含义解析:成员函数参数ThisClass**的疑问

关于C++中ThisClass**的含义解读

嘿,我来给你掰扯清楚这个事儿——ThisClass** identifier就是双重指针(指针的指针),没有什么特殊的语法糖或者隐藏含义,和你熟悉的int**本质是一个逻辑,只是把基础类型换成了你的类类型而已。

先从你已经懂的单指针说起:

  • ThisClass* identifier:这个参数是一个指向ThisClass实例的指针,你可以通过它访问那个实例的成员,但如果在函数里直接给identifier赋值(比如identifier = new ThisClass();),只会修改函数内部这个参数的副本,外部的指针变量不会有变化——因为C++函数参数默认是值传递。

那双重指针解决的就是这个问题:

  • ThisClass** identifier:这个参数是一个指向「ThisClass指针」的指针。简单说,它保存的是你外部那个ThisClass*变量的地址。这样一来,在函数内部通过*identifier就能直接操作外部的指针变量本身了。

举个实际的例子,比如这个成员函数可能是用来创建并返回一个新的ThisClass实例:

void ThisClass::MemberFunction(ThisClass** identifier) {
    // 释放旧对象(如果有的话)
    if (*identifier != nullptr) {
        delete *identifier;
    }
    // 让外部的指针指向新创建的对象
    *identifier = new ThisClass();
}

// 调用的时候
ThisClass* myObj = nullptr;
myObj->MemberFunction(&myObj); // 传入myObj的地址,也就是ThisClass**类型

再总结一下你代码里这个成员函数的参数:
它允许函数修改调用者传入的ThisClass*指针本身——不管是让它指向新对象、重置为nullptr,还是用来输出某个内部创建的对象的地址,都是双重指针的典型用法。

内容的提问来源于stack exchange,提问作者XavierStuvw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:12:26