C++知识:this 指针详解

机器人示教器方案昆仑通态脚本实现( 三菱FX3U+昆仑通态3轴联动)) 项目应用场景:最终客户需要自由的修改程序流程,如检测什么信号,多少时间,再进入下一步,轴定位轨迹可以自由修改,方便最终可以在不修改PLC程序的情况下,自由示教程序。3.指令数量可以自行添加,在内存足够的情况下,无限制,只需要在PLC框架里面写好每个指令执行的内容就可以了,不需要在程序里面重复写相同类容;4.模板有延时指令,输入指令,输出指令,伺服定位指令,焊钳控制指令,自动修磨指令,转矩模式指令,结束指令等(可自行添加);1.有类似示教器编程功能,可以任意位置插入指令,可以任意位置删除指令; 阅读详情

每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

注意:友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。

示例代码 :

#include <iostream>
using namespace std;

class Array
{
public:
    Array(int Len = 0) : Len(Len) { cout << "Array()" << endl; }
    ~Array() { cout << "~Array()" << endl; }
    void setLen(int Len) { this->Len = Len; }
    int getLen() { return Len; }
    void print() {cout << "Len = " << Len << endl;}
private:
    int Len;
};

void stackInstantiation()
{
    Array arr1(5);
    Array arr2;
    arr2.setLen(7);
    arr1.print();
    arr2.print();
}

int main()
{
    stackInstantiation();
    return 0;
}

运行结果:

  • 当参数名称与数据成员名称相同时可使用 this 指针区分。
  • 当参数名称与数据成员名称相同时可使用初始化列表,如示例代码 中 Point 类。
  • 以上两种方式可以区分参数和成员函数,但建议不要起相同的名称。

示例代码

#include <iostream>
using namespace std;

class Array
{
public:
    Array(int Len = 0) : Len(Len) { cout << "Array()" << endl; }
    ~Array() { cout << "~Array()" << endl; }
    // Array *setLen(int Len) {
    //     this->Len = Len;
    //     return this;
    // }
    Array &setLen(int Len) {
        this->Len = Len;
        return *this;
    }
    int getLen() { return Len; }
    void print() {
        cout << "Len = " << Len << endl;
    }
private:
    int Len;
};

void stackInstantiation()
{
    Array arr1(5);
    arr1.print();
    arr1.setLen(7).print();
}

int main()
{
    stackInstantiation();
    return 0;
}

运行结果:

  • 返回对象指针或者引用时的成员函数可以连续访问。
  • 引用返回 *this 而指针返回 this。

示例代码

void stackInstantiation()
{
    Array arr1(5);
    cout << "this addr: " << arr1.setLen(7) << endl;
    cout << "obj addr: " << &arr1 << endl;
    Array arr2(3);
    cout << "this addr: " << arr2.setLen(6) << endl;
    cout << "obj addr: " << &arr2 << endl;
}

运行结果:

  • this 指针就是对象本身的指针。
  • 相同类型不同对象 this 指针指向不同的对象。
具身智能四大技术路线:VLA、大小脑、世界模型与强化学习 具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技 阅读详情

相关推荐

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

谈谈this指针

首先this指针是什么呢? this指针是一个指向当前对象的隐含的指针,每一个成员函数都有一个指针型参,他的名字是固定的,称为this指针(构造函数比较特殊,没有这个隐含的this指针)。 编译器会对成员函数进行处理,在对象调用成员函数时,对象地址作为实参传递给成员函数的第一个形参this指针。 this指针是成员函数隐含指针形参,是编译器自己处理的,我们不可以在成员函数的形参中添加this...

a15929748502的博客 205

GD32主程序跑飞?可能是BOOT0引脚惹的祸(附J-LINK调试实录)

本文针对GD32微控制器程序下载后无法运行的典型问题,深入剖析了BOOT0引脚配置对启动模式的关键影响。通过结合J-LINK调试器与KEIL MDK环境,详细演示了如何从程序跑飞现象(如PC指向0x1FFF Fxxx)定位到硬件层面的BOOT0引脚与VDD短路故障,并提供了系统的硬件排查步骤与设计预防建议。

d6e7f8的博客 705

this指针

this是一个指针,它时时刻刻指向你这个实例本身。你可以看到它的成员函数、成员变量,this指针本质上是“成员函数”的形参。你可以看见桌子、椅子、地板等,静态成员函数中不能使用this指针。但是房子你是看不到全貌了。对于一个类的实例来说,当你进入一个房子后,不能给this指针赋值。

m0_63783532的博客 8503

波束形成算法:LCMV实现(MATLAB)

阵列信号处理,波束成形,

weixin_43601588的博客 1万+

用友u8服务器优化,用友U8erp软件运行的性能优化方案图文教程

今天一定要给大家分享一下用友U8erp软件运行的性能优化方案图文教程,以下方案来自用友软件官方维护工程师反馈在在处理客户问题的时候,有一类问题较为挠头,就是诸如用友U8服务器效率低下的问题。比如用友U8运行慢,卡住等,我们暂先不提用友U8软件代码、脚本层面本身的性能提升问题,我们只是基于现有用友U8软件版本,在客户现有环境下排查用友U8软件运行的性能瓶颈,并采取一定的技术手段进行性能调校。本文将推...

weixin_39882870的博客 5306

C++中的This指针

一、This指针的介绍     C++中使用This指针来指向用来调用成员函数的对象。一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函

u012103747的专栏 2880

深度学习模型轻量化方法之【量化】

量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。

m0_73916791的博客 2847

This 指针详解(C++版)

前言 一、this指针定义 二、this指针的特征 三、this指针面试题

qq_56674342的博客 3425

JavaFX Stage

JavaFXStagejavafx.stage.Stage表示 JavaFX 桌面应用程序中的窗口。在 JavaFX 内部,Stage您可以插入一个 JavaFX Scene,它表示在窗口内显示的内容 - 在Stage.当 JavaFX 应用程序启动时,它会创建一个根Stage对象,该对象将传递给 start(Stage primaryStage)JavaFX 应用程序的根类的方法。此Stage 对象代表 JavaFX 应用程序的主窗口。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 508

Flask基础项目:从零到一搭建用户管理系统

本文介绍了一个基于Flask的用户管理系统,具有完整的增删改查功能。系统采用SQLAlchemy ORM进行数据库操作,自动处理SQL注入并首次运行时创建表结构。主要特点包括:实时统计用户总数和平均年龄、智能即时搜索、前后端双重数据验证、邮箱唯一性检查、流畅动画效果和响应式设计。后端使用Flask框架实现RESTful API,前端采用现代化UI设计,支持异步操作不阻塞界面。系统安装简单,只需创建数据库并安装依赖即可运行,适合作为基础用户管理系统的参考实现。

数据知道的博客 3838

C++中this指针详解整理(通俗易懂)

指针 在建立对象时,系统会为每一个对象分配独立的存储空间,也就是给每个对象中的数据成员都分配有自己独立的存储空间。 如果对同一个类定义n个对象,则有n组同样大小的空间以存放对象中的数据成员。但对于成员函数来说,对象中的数据成员。一个函数的代码段在内存中只有一份。也就是说,函数的代码段在内存中只有一份。也就是说,同一个类中的不同对象在调用自己的成员函数时,其实它们调用的是同一段函数代码。 那么,当一个对象调用自己的成员函数时,如何才能保证成员函数中对数据成员的处理是针对自己的数据成员,而不是其他对象的数据成员

Me的博客 2249

“守望先锋”网络同步分析

守望先锋”(Overwatch)是一款由暴雪娱乐开发的团队基础第一人称射击游戏(FPS),于2016年正式发布。游戏以其独特的角色设计、丰富的游戏模式和高度的团队合作性而受到广泛欢迎。类型:第一人称射击(FPS)/多人在线战斗竞技场(MOBA元素)平台玩家人数:每场比赛由两个六人队伍组成,共12名玩家。客户端/服务器模型:在这种模型中,客户端负责处理用户输入和表现逻辑,而服务器则负责游戏的核心逻辑和状态管理。客户端与服务器之间通过网络进行通信,确保游戏状态的一致性。强同步机制。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 429

c++中this指针的用法详解

为什么引入this指针?     最简单的应用场景就是:当我们在类中定义了一个变量,同时在类成员函数中定义了同一变量时,也就是说变量名重复时,但是我们想使用类中定义的变量,这个时候我们该怎么办呢?这个时候就是this指针大显身手的时候了。为此我们引入this指针的概念。 1. this指针的用处:   一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this...

程小二的博客 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C++:this指针详解

本篇关于this指针的内容就到这里了,希望对各位有帮助,如果有错误欢迎各位指出。运行下面两串代码,会发现两个代码虽然只差了一行代码,结果却差别很大。C++实现stack代码。C实现stack代码。

2401_86551514的博客 2638

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C++ this指针

this 指针 引言: 首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个指针:this指针,通过this指针来访问自己的地址。 注意: this指针并不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的。this指针的类型取决于...

好学者的博客 6万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【C++this指针详解】

C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该 指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。

小小小智_x0__0x_的博客 3011

C++ this指针详解

this指针this指针介绍成员函数的参数和成员变量重名,this区分在类的普通成员函数中返回对象本身 this指针介绍 1.this 指针是 C++实现封装的一 种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象 都拥有自己的函数成员。每个对象用有独立的数据。每个对象共享同一个方法。this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 成员函数的参数和成员变量重名,this区分 代码演示: #include <io

weixin_50866517的博客 7025

C++中this指针的作用以及用法详解

为什么引用this指针? 当我们在类中定义了一个变量,同时又在类成员函数中定义了同一个变量时,也就是变量名重复时,但是我们要想使用类中的定义的变量,此时就需要this指针了。 1.this指针的作用 指针存在于类的成员函数中,指向被调用函数类实例的地址。  一个对象的this指针并不是对象本身的一部分,不会影响sizeof()的结果。 this指针的作用域是在类内部,当在类的非静态成员函

深海一诺 3万+

【C++ | this指针】一文了解C++的this指针

👉本文介绍了C++的this指针,为什么需要this指针,什么是this指针,怎么使用this指针。

wkd_007的博客 1890

C++ 之this指针详解

this指针 一、this关键字 this指针 每个成员函数(包括构造和析构)都有一个this指针。 this指针指向调用对象,即可以通过this关键字访问对象成员。 //访问成员变量 this->成员名; //访问成员函数 this->函数名(); 注意: 1.this指针的类型为类类型*const(类名 *const ),为右值。 2.this指针本身不占用大小,它并不是对象的一部分,因此不会影响sizeof的结果。 3.this的作用域在类成员函数的内部。 4.this指针是类成员函数

一直努力 3191

c++中 this指针详解

this 是 c++中的一个关键字,也是一个常量指针,指向当前对象,也就是当前对象的首地址。通过this指针,可以访问当前对象的成员变量和成员函数。 【特性】 1.  this指针的类型是 类类型* const 2.  this指针并不是对象本身的一部分,不会影响sizeof的结果 3.  this的作用域在类成员函数的内部 4.  this指针是类成员函数的第一个默认隐含参数,

春风来不来的博客 4326

c++之this指针详解

1.this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。...

学之知之的博客 2012

C++ 中的 this 指针详解

this。

2401_87074443的博客 2337

c++基础知识:this指针

this指针简介

qq_48335434的博客 4326

C++中this指针的用法详解

1. this指针的用处:   一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。  例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),t.

sun1096043012的博客 3966
上一篇: 栈与堆对比
下一篇: ROS报错解决:[rosrun] Found the following, but they‘re either not files,[rosrun] or not executable:
程序员草帽
博客等级 码龄6年 3096粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值