在什么情况下“this”指针被传递给类方法? [复制]

2024-04-04

我正在阅读“this”指针,我想我比原来更了解它,但我仍然需要一些澄清。所以,根据我的理解,如果你有

class Simple
{
private:
    int m_nID;

public:
    Simple(int nID)
    {
        SetID(nID);
    }

    void SetID(int nID) { m_nID = nID; }
    int GetID() { return m_nID; }
};

SetID(int nID)函数实际上在语义上转换为:

void SetID(Simple* const this, int nID) { this->m_nID = nID; }

这是有道理的,有一个this大多数情况下,类的所有成员函数的指针。但是,如果您有一个不带参数的成员函数,会发生什么情况呢?有“this”指针吗?如果是这样,它是否指向返回类型而不是参数类型?


但是如果你有一个不带任何参数的成员函数会发生什么? 论据?有“this”指针吗?如果是这样,它是否指向 返回类型而不是参数类型?

即使你的方法没有任何参数,它仍然有一个隐藏参数,即this指针。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在什么情况下“this”指针被传递给类方法? [复制] 的相关文章

  • 为什么 PCRE 正则表达式比 C++11 正则表达式快得多

    一些示例代码 这是使用 cregex iterator 的 c 11 部分 std chrono steady clock time point begin0 std chrono steady clock now regex re
  • 如何让 CMake 为目标安装 PDB 文件

    如何让 CMake 安装调试 Visual Studio 生成的 DLL 文件和 EXE 文件所需的配套 PDB 文件 我已经挣扎了一段时间 试图找到这个问题的一个好的答案 我现在认为我找到了一个 使用安装文件命令
  • IssuerSigningKeyResolver 调用异步方法

    我们使用 IssuerSigningKeyResolver 它是 Microsoft IdentityModel Tokens 的一部分 用于令牌验证并接受非异步委托 我们调用一个异步方法 这将导致阻塞调用 因此想知道使用它的正确方法是什么
  • 如何从头开始重复C程序并清理屏幕和第一个输入值?

    我是编程新手 我写了一个简单的程序 我想一次又一次地重复该程序 并且只有当用户想要退出时它才能退出 这是我的程序 include
  • Windows 控制台中的 C++ 按键输入

    我目前正在开发各种consoleWindows 中的游戏无法通过常规输入真正运行cin 我怎样才能 以简单的方式仅使用 MSVC 中提供的标准 Windows 库 让程序等待 特定 按键并返回按键 ID 它必须适用于包括箭头键在内的所有按键
  • Mono 和 WebRequest 速度 - 测试

    在 mono 4 6 2 linux 中 我注意到 wget 下载文件的速度与webclient DownloadString 所以我做了一个小测试来调查 为什么 wget 明显比 C 快 根据我自己的实验 使用 wget 下载 手动读取文
  • 使用不存在和联接的 SQL 查询到 LINQ 语法

    我的 SQL 查询如下所示 在 SQL 中运行良好 我需要将其转换为 LINQ 语法 SQL SELECT Key Id FROM LocalizationKeys AS lk WHERE NOT EXISTS SELECT 1 FROM
  • c++1y 模式下的 Clang >= 3.3 无法解析 标头

    我有一个项目可以在 g 4 8 1 和 c 11 模式下 clang gt 3 3 下正确编译和运行 然而 当我切换到实验时 std c 1y模式下 clang 3 3 但不是 g 在
  • 无效的跨线程访问问题

    我有两个 ViewModel 类 PersonViewModel 和 PersonSearchListViewModel PersonViewModel 实现的字段之一是通过 WCF 下载的个人资料图像 本地缓存在独立存储中 PersonS
  • 慢速 WPF 文本框

    我正在开发一个简单的串行数据查看器 它将用于观察传输到计算机串行端口之一的数据 我使用 C 和 WPF 编写了一个测试应用程序 它只是将最近读取的行放入文本块中 但是 它会跳过所有其他行 我的理论是 在 WPF 渲染窗口之前 新数据会被放入
  • 在大型数据绑定 ObservableCollection 中添加/删除许多项目,而无需冻结 GUI

    我和我的团队正在开发一个 WPF 应用程序 该应用程序显示多个并发 XamDataChart 控件 由 Infragistics 提供 每个图表都绑定到不同的 ObservableCollection 最多可包含 200 万个点 对于每个图
  • 在 C 中使用另一个结构中的二维结构数组的编码问题

    我正在使用一个二维结构数组 它是另一个结构的一部分 这不是我做过很多事的事情 所以我遇到了问题 该函数在接近末尾的 测试 for 循环后最终失败 它在出现段错误之前正确打印出一行 我的代码中将数据读入虚拟二维结构数组的部分工作得很好 所以它
  • 如何在 Datagridview 中为图像列提供超链接

    如何在winforms中超链接到DataGridViewImageColumn OP 评论中的代码示例 DataGridView dgv new DataGridView dgv Name dgv i dgv DataSource dsMa
  • 最佳实践:从属性中抛出异常

    什么时候适合从属性 getter 或 setter 中抛出异常 什么时候不合适呢 为什么 关于这个主题的外部文档的链接会很有帮助 谷歌搜索结果出奇的少 Microsoft 在以下位置提供了有关如何设计属性的建议 http msdn micr
  • 在C中更改函数内的数组

    我正在学习 C 并且很困惑为什么在 main 中创建的数组不会在函数内部更改 我假设传递的数组是一个指针 并且更改指针应该更改数组 对吧 有人可以解释这种情况下发生了什么吗 谢谢你的帮助 int main int i length 10 i
  • C# 中 WinForm TextBox 中数字的按键事件

    我想限制用户在文本框中仅输入数字 我在按键事件中添加此代码 private void txtPartID KeyPress object sender KeyPressEventArgs e if e KeyChar gt 0 e KeyC
  • 从 Asp.Net Core 控制器返回 IAsyncEnumerable 和 NotFound

    返回一个控制器操作的正确签名是什么IAsyncEnumerable
  • 如何将 MouseDown 事件放入样式中?

    这有效 XAML
  • 使用 JSON.NET 反序列化一些 JSON

    我对 JSON 非常陌生 我需要解析 API 提供的一些内容 谷歌快速搜索出现了JSON NET http james newtonking com pages json net aspx 所以我现在尝试使用它将此 JSON 解析为列表对象
  • 类型 '' 未映射

    我已经尝试修复这个错误有一段时间了 每当我的应用程序尝试创建数据上下文的实例时 我都会收到此错误 下面是代码 using System using System Collections Generic using System Linq u

随机推荐

  • System.Text.Json 中的 DefaultContractResolver 等效项

    我正在从 Newtonsoft 转换一些逻辑 并找到以下实现之一 public class CustomDataContractResolver DefaultContractResolver public Dictionary
  • 带有过滤条件的 LINQ 连接

    linq 中是如何完成这样的事情的 它在 JOIN 上有过滤条件 这是摘自这个问题 SQL过滤条件在连接条件或where子句中哪个更有效 https stackoverflow com questions 1401889 sql filte
  • React Redux:如何处理 RTK 查询/突变打字稿中的错误?

    我正在使用带有 RTK 突变的 Typescript 一切正常 但如果我以特定 JSON 格式从后端发送任何错误 例如 status Error message Something went wrong 当我检查浏览器网络选项卡时 它会向我
  • 使文本框不可编辑

    使用 C asp net 与 05 进行比较 我有一个要求 我必须在文本框中填充 gridview 上的一些数据 这些数据来自数据库并使其只读 此后 用户无法在 gridview 模板字段上输入任何文本 如果我设置文本框Enabled fa
  • 在连接的自定义字段上使用过滤表达式时 SSS_INVALID_SRCH_FILTER_JOIN

    SuiteScript v1 搜索项目记录类型 customrecord sp ecom item infoseo 是自定义记录类型 具有一个名为 custrecord sp ecom item seo 的字段 该字段引用项目记录 它还具有
  • char* 和 std::uint8_t* 之间的reinterpret_cast - 安全吗?

    现在我们有时都必须使用二进制数据 在 C 中 我们使用字节序列 并且从一开始char是我们的基石 定义为有sizeof为 1 时 它是字节 所有库 I O 函数都使用char默认情况下 一切都很好 但总是有一点担心 一点奇怪的事情困扰着一些
  • XSLT 2.0 将 CSV 转换为 XML 格式

    我正在尝试将 CSV 逗号分隔文件 转换为 XML 为此 我正在编写一个 XSLT 模板 这是我第一次尝试 XSLT CSV 示例 ClaimRef HandlerRef ClaimType Date Area SettleDate Cla
  • PHP:获取图像大小

    我正在写一个函数 它需要一个参数 该参数是服务器上图像的物理路径 我想知道是否有可能以任何方式获得其原始大小 以像素为单位 在一个变量中 我想存储它的宽度 在另一个变量中存储它的高度 让我问这个问题的挑战是因为我必须在服务器端获取它 因此任
  • 向 pandas 的日期时间列随机添加 10 到 40 分钟

    我有一个数据框 如下所示 start 2010 01 06 09 00 00 2018 01 07 08 00 00 2012 01 08 11 00 00 2016 01 07 08 00 00 2010 02 06 14 00 00 2
  • 使用nodejs创建OAuth2服务器

    我实际上正在研究 REST API 安全性 似乎很多人都在使用 OAuth2 和 OpenId 协议来管理身份验证 我尝试使用以下方法实现两个 OAuth2 服务器 http passportjs org http passportjs o
  • 使用 adb 刷新 Android mediastore

    我正在使用 adb 在 Android 手机上同步音乐 本质上 我管理现有的音乐目录并推送替换音乐文件 我希望能够使用 adb 强制重新扫描 以便谷歌音乐播放器 和其他应用程序 能够与新歌曲和播放列表正常工作 根据如何刷新 Android
  • 如何以编程方式创建联系人[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Android 中添加新联系人 https stackoverflow com questions 4744187 how to add new contacts in android pub
  • 如何使用 python smtplib 向多个收件人发送电子邮件?

    经过大量搜索后 我无法找到如何使用 smtplib sendmail 发送给多个收件人 问题是每次发送邮件时 邮件标头都会显示包含多个地址 但实际上只有第一个收件人会收到电子邮件 问题似乎在于email Message http docs
  • 如何在 React 中使用 Firebase App Check。 403错误

    我想在 Gatsby 项目中使用 Firebase App Check 我已在 Firebase 控制台中完成了应用程序注册 在我的项目中 import initializeApp from firebase app import init
  • 评估给定文本块的关键字密度

    我想使用 php 将关键字短语传递给函数 并让该函数解析文本块并返回输入短语的关键字密度占文本块总字数的百分比 text lorem ipsum etc keyword lorem ipsum word count explode text
  • C++ 模板:防止基础模板的实例化

    我有一个界面 std string get string Source const s std string const d int get int Source const s int const d bool get bool Sour
  • phpMailer 未到达 Hotmail?

    设置 SPF 记录后 我仍然在这里验证为什么我无法将这封电子邮件接收到 hotmail 帐户 我可以毫无问题地将其发送到 Gmail 请确认代码是否正确 SPF记录是否正确
  • 如何在 JavaScript 代码中访问 PHP 变量?

    我在 PHP 代码中有一个变量 我想在 JavaScript 函数中访问它 下面是我的代码 myfile php
  • 在 julia 中打开 csv 文件时转义序列无效

    当打开 CSV 文件时julia它给 无效的转义序列 error 无效的转义序列 https i stack imgur com U9hn0 png julia gt using CSV julia gt wikiEVDraw CSV re
  • 在什么情况下“this”指针被传递给类方法? [复制]

    这个问题在这里已经有答案了 我正在阅读 this 指针 我想我比原来更了解它 但我仍然需要一些澄清 所以 根据我的理解 如果你有 class Simple private int m nID public Simple int nID Se