问题标签 [this-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1462 浏览

c++ - 如何从 std::function 获取这个指针?

由于std::function可以保存成员函数,所以它必须在某处存储指向对象实例的指针。

如何从包含成员函数this的 a 中获取指针?std::function

0 投票
6 回答
11194 浏览

c++ - “this”指针存储在计算机内存中的什么位置?

'this' 指针究竟存储在内存中的什么位置?它是分配在堆栈上、堆中还是数据段中?

在上面的代码中,我调用了成员函数add(),接收器对象作为“this”指针隐式传递。this内存中存储在哪里?

0 投票
6 回答
901 浏览

c++ - this[0] 在 C++ 中安全吗?

这个较早的问题询问this[0]C# 中的含义。在 C++ 中,表示“由.this[0]指向的数组的第 0 个元素”。this

是否保证不会导致 C++ 中的未定义行为以这种方式引用接收者对象?我不提倡使用这种语法,我很好奇规范是否保证这将永远有效。

谢谢!

0 投票
1 回答
656 浏览

c++ - 如果 `this` 不是 const,为什么我不能修改它?

指针[ class.thisthis ] 中,C++ 标准规定:

类的this成员函数中的类型XX*

this不是const。但是为什么会这样

换句话说,this不是const,但它确实是!

0 投票
3 回答
250 浏览

c# - 通过在 C# 中返回此指针/引用而不进行赋值来链接命令

这主要是一个语法问题。这是一个相关线程,显示了实现相同结果的不同替代方法: C# 中的方法链

现在,在 C++ 中,可以通过使方法返回指向该方法所属对象的指针来链接对象上的命令。

我正在寻找的语法是:

在 C# 中,如果我返回此值,则会复制该值(编辑:一半不正确,阅读答案)。我认为我不能返回引用或指针,可以吗?有没有其他方法可以实现相同的语法?

现在我的解决方案是将结果分配给我的对象,如下所示:

然而,这不是最佳解决方案,因为它既慢(在我的情况下无关紧要)而且更冗长。对于正确方向的任何指示,我都会非常高兴!

0 投票
2 回答
262 浏览

boost - 对有时不属于 shared_ptr 的对象使用 boost::shared_from_this

我想使用shared_from_this如下:

我的问题是我不想强制example.foo()只使用由 shared_ptr 拥有的示例对象来调用。例如,我想允许以下内容:

但这似乎是一个错误,因为 p 不属于 a shared_ptr。如果我错了,请纠正我。

如果我没记错的话,我该如何解决这个问题?

0 投票
4 回答
14149 浏览

c++ - C ++如何将'this'传递给指针引用

我有主类,我喜欢将其指针引用传递给我创建的对象,但它给了我错误:

错误 1 ​​错误 C2664: 'GameController::GameController(GameLayer *&)' : 无法将参数 1 从 'GameLayer *const' 转换为 'GameLayer *&'

我在 GameLayer 中有什么(主要对象)

在 GameController 我有这个构造函数

问题是我需要能够从 GameController 修改 GameLayer 中的数据(GUI 的东西)

0 投票
4 回答
122 浏览

c++ - 使用“this ->”来引用类的成员是否有好处或性能提升?

我想知道在 C++ 中使用“this”来引用类成员而不是不使用它有什么好处吗?

例如...

0 投票
2 回答
1115 浏览

c++ - 在 C++ 中具有指向自身的自指针的类的复制构造函数?

我想问一下,我们将如何实现一个类的复制构造函数,该类将自身指针作为其数据成员,我想实现一个深拷贝,

我很困惑这条线// how to assign parent parent = new City(??)会再次调用构造函数而不是深拷贝?问候。

0 投票
2 回答
131 浏览

c++ - 分配 shared_ptr 是否可以丢弃 `this` 指针

让我们以表示子节点树的数据结构(节点)为例。每个对象的子节点集存储在地图中>

用户通常会调用以下代码示例。

到目前为止,一切都很好。

我突然想到,调用者可能会遍历树,而不必为树的每个深度处理额外的变量

在上述情况下,如果 spNode 是对该对象的最后剩余引用,那么我担心 GetChildItem 方法中的这段代码:

spChild(实际上是调用者的 spNode 实例)的分配是否会在上次引用刚刚消失后无意中破坏“this”节点?(因此在 spChild 分配之后调用其他方法是危险的)。我这里有潜在的错误吗?

我认为解决方法是在方法调用的顶部简单地添加这一行:

想法?