this-pointer相关内容

不可能:此指针作为默认参数.为什么?

以下代码无法编译.为什么? A 类{诠释 j;无效 f(int i = this->j);} 编辑,为清楚起见.这就是我试图做的,使用更少的代码行...... A 类{无效 f(int i){};无效 f( );诠释 j;};无效 A::f(){缩略词 );} 解决方案 默认参数值在编译时绑定. “this"只在运行时定义,所以不能使用. 查看这里以获得更完整的解释:C++中 ..
发布时间:2022-01-21 21:58:01 C/C++开发

“this"指针的类型

如标题所述,我想知道'this'指针的类型. 我正在处理一个项目,我观察到 'this' 指针的类型是 "ClassName * const this" 在使用 VC++ 2008 的 Windows 上.好吧,我想知道使 this 指针成为常量指针的需要/要求是什么.谢谢. 解决方案 这个指针的类型是 ClassName * 或者 const ClassName * ,取决于它是否 ..
发布时间:2021-12-09 21:09:08 C/C++开发

不可能:将此指针作为默认参数.为什么?

以下代码无法编译.为什么? A 类{国际 j;void f(int i = this->j);} 编辑,为清楚起见.这就是我想要做的,使用更少的代码行... A 类{void f(int i){};无效 f( );国际 j;};无效 A::f(){缩略词 );} 解决方案 默认参数值在编译时绑定. “this"只在运行时定义,所以不能使用. 请参阅此处以获得更完整的解释:C+ ..
发布时间:2021-11-17 05:09:10 C/C++开发

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

由于std::function可以保存成员函数,所以它必须在某处存储一个指向对象实例的指针. 如何从包含成员函数的 std::function 获取 this 指针? 解决方案 std::function 类型的对象拥有一个 可调用对象.指向成员函数的指针是一种可调用对象;可以使用适当类类型的参数以及它需要的任何其他参数来调用它.例如: struct S {void f(int); ..
发布时间:2021-09-07 18:32:09 C/C++开发

C ++将类的指针分配给unique_ptr或shared_ptr

我有一个要从其继承的基类,并且在可以声明其任何派生类之前,必须至少声明一个该基类的实例.我正在考虑将基类的this pointer存储到其自己的unique_ptr成员变量中,而不是使用static_ptr.同样,基类将跟踪其派生类的所有实例,直到声明另一个基类为止.这是我的类声明的样子: #include #include #include ..
发布时间:2020-11-28 00:18:25 C/C++开发

非多态继承是否发生指针调整?

非多态继承是否需要此指针调整?在所有情况下,我都看到此指针调整讨论了通过关键字virtual使用涉及多态继承的示例. 我尚不清楚非多态继承是否需要此指针调整. 一个非常简单的例子是: struct Base1 { void b1() {} }; struct Base2 { void b2() {} }; struct Derived : public Bas ..
发布时间:2020-05-13 19:14:10 C/C++开发

编译器的此指针,虚函数和多重继承的详细信息

我正在阅读Bjarne的论文:在第370页的第3节中,Bjarne说:“编译器将成员函数的调用转换为带有“额外"参数的“普通"函数调用;“额外"参数是指向该对象的指针成员函数被调用." 我对这个论点感到困惑.请参见以下两个示例: 示例1 :(第372页) class A { int a; virtual void f(int); virtual void ..

限制成员函数的限定符(限制这个指针)

注意:为了澄清,问题不在于一般使用 restrict 关键字,而是关于将其应用于成员函数如此处所述。 gcc允许您使用 __ restrict __ (相当于C99的 restrict )限定符的GNU ++在一个成员函数上,有效地使这个成为函数范围内的一个限制限定指针。牛肉在哪里? 大多数成员函数在其他成员上工作,通过这个访问它们,这是一个 T * const (并且通常是不确定的) ..
发布时间:2018-04-21 10:50:01 C/C++开发

指针的地址“this”在指向成员函数调用的指针内意外更改

我有问题的指针成员函数调用。在函数指针调用之外的指针“this”的地址与调用内部不同,因此对类变量的所有访问都会导致错误的值。 我在这里包含代码。 class ClassInterface { public: ClassInterface(void); 〜ClassInterface(void); }; class ClassA:public ClassInter ..
发布时间:2016-11-02 22:30:37 C/C++开发

你能解释一下这个指针的概念吗?

我需要理解这个指针概念,最好用一个例子。 所以请使用简单的语言,这样我就可以更好的理解了。 解决方案 此是指向其类的实例的指针 如果你已经声明了一个类,它有一个私有成员 foo bar 可通过 bar , foo code> this-> foo ,但不通过 instance-> foo b ..
发布时间:2016-10-27 01:25:16 C/C++开发

C ++如何将“this”传递给指针引用

我有一个主类,我喜欢传递它的指针引用对象创建,但它给我错误: 错误1错误C2664:'GameController :: GameController(GameLayer *&)': 无法将参数1从'GameLayer * const'转换为'GameLayer *&' 我在GameLayer(主对象)中有什么 m_pGameController = new GameCont ..
发布时间:2016-10-24 13:35:30 C/C++开发

这个指针捕获在lambda包装器周围的递归函数

我有一个类模板 Wrap 使用递归成员函数 test(int)传递给具有lambda( std :: accumulate 在下面的代码)的STL算法。 如果我使用默认捕获列表 = ,并使我的递归meber函数 static ,一切都很好,并得到我想要的结果。 但是,如果我使它成为非静态成员函数,Visual C ++和gcc 4.7.2都会抱怨一个单位化的 this -poi ..
发布时间:2016-10-19 21:30:09 C/C++开发