144得票2回答
std::shared_ptr of this

我目前正在学习如何使用智能指针。然而在进行一些实验时,我发现了以下情况,但我找不到一个令人满意的解决方案: 假设你有一个A类对象作为一个B类对象(子对象)的父对象,但两者都应该相互知道:class A; class B; class A { public: void addChil...

66得票6回答
在计算机内存中,'this'指针存储在哪里?

这个指针'this'在内存中具体存储在哪里?它是分配在堆栈、堆还是数据段中的?#include <iostream> using namespace std; class ClassA { int a, b; public: void add()...

50得票12回答
“this”指针只是编译时的东西吗?

我在思考是否过度使用this指针,因为每次引用成员变量或函数时通常都会使用它。我想知道这是否会影响性能,因为每次都需要解引用一个指针。于是我写了一些测试代码。 struct A { int x; A(int X) { x = X; /* And a seco...

38得票4回答
'this'指针的类型

正如标题所述,我想了解'this'指针的类型。 我正在开发一个项目,观察到在Windows使用VC++ 2008时'this'指针的类型为"ClassName * const this"。我想知道把this指针变成常量指针的必要性和原因。谢谢。

26得票2回答
当lambda捕获"this"时,它是否必须显式使用?

我找到的捕获lambda表达式中this的例子都是显式地使用它,例如: 我找到的Lambda表达式中捕获this的例子都是明确地使用它,例如: capturecomplete = [this](){this->calstage1done();}; 但似乎也可以隐式地使用它,例如:ca...

25得票1回答
常量不匹配:2个重载没有合法的转换“this”指针。

我遇到了一个奇怪的错误: error C2663: 'sf::Drawable::SetPosition' : 2个重载函数没有合法的转换 'this'指针 我想这可能与const不匹配有关,但我不知道出错的原因和位置。在下面的代码中,我有一个形状和精灵的向量,在尝试访问其...

25得票1回答
如果`this`不是const,为什么我不能修改它?

在C++标准中,关于The this pointer [class.this]的规定如下: 在类X的成员函数中,this的类型为X*。 也就是说,this指针不是const。但为什么会这样呢?struct M { M() { this = new M; } }; 提供err...

23得票3回答
将*this作为引用返回是否安全?

将此对象的引用返回通常在赋值运算符重载中使用。它还用作命名参数习惯用法的基础,该习惯用法允许通过调用setter方法链来初始化对象:Params().SetX(1).SetY(1),其中每个方法都返回对*this的引用。 但是返回对*this的引用是否正确?如果我们为临时对象调用返回对此的方...

15得票6回答
这段代码在C++中安全吗?

这个早期的问题询问C#中的this[0]是什么意思。在C++中,this[0]表示“指向this所指向的数组的第零个元素”。 在C++中,以这种方式引用接收对象是否保证不会导致未定义的行为?我并不主张使用这种语法,主要是想知道规范是否保证这将始终起作用。 谢谢!

14得票4回答
你能解释一下this指针的概念吗?

我需要了解 this 指针的概念,最好附带一个示例。 我是C++的新手,请使用简单的语言,以便我更好地理解。