this-pointer相关内容
以下代码无法编译.为什么? A 类{诠释 j;无效 f(int i = this->j);} 编辑,为清楚起见.这就是我试图做的,使用更少的代码行...... A 类{无效 f(int i){};无效 f( );诠释 j;};无效 A::f(){缩略词 );} 解决方案 默认参数值在编译时绑定. “this"只在运行时定义,所以不能使用. 查看这里以获得更完整的解释:C++中
..
如标题所述,我想知道'this'指针的类型. 我正在处理一个项目,我观察到 'this' 指针的类型是 "ClassName * const this" 在使用 VC++ 2008 的 Windows 上.好吧,我想知道使 this 指针成为常量指针的需要/要求是什么.谢谢. 解决方案 这个指针的类型是 ClassName * 或者 const ClassName * ,取决于它是否
..
以下代码无法编译.为什么? A 类{国际 j;void f(int i = this->j);} 编辑,为清楚起见.这就是我想要做的,使用更少的代码行... A 类{void f(int i){};无效 f( );国际 j;};无效 A::f(){缩略词 );} 解决方案 默认参数值在编译时绑定. “this"只在运行时定义,所以不能使用. 请参阅此处以获得更完整的解释:C+
..
由于std::function可以保存成员函数,所以它必须在某处存储一个指向对象实例的指针. 如何从包含成员函数的 std::function 获取 this 指针? 解决方案 std::function 类型的对象拥有一个 可调用对象.指向成员函数的指针是一种可调用对象;可以使用适当类类型的参数以及它需要的任何其他参数来调用它.例如: struct S {void f(int);
..
我有一个要从其继承的基类,并且在可以声明其任何派生类之前,必须至少声明一个该基类的实例.我正在考虑将基类的this pointer存储到其自己的unique_ptr成员变量中,而不是使用static_ptr.同样,基类将跟踪其派生类的所有实例,直到声明另一个基类为止.这是我的类声明的样子: #include #include #include
..
以下代码确实按预期方式不会编译 #include A类 { public: A()=默认值; 〜A()=默认值; A(const A&)=删除; A(A&)=删除; A&运算符=(const A&)=删除; A&运算符=(A&)=删除; A&运算符
..
我想问问我们将如何实现一个以自身指针为其数据成员的类的副本构造函数,我想实现一个深层副本, class City { 字符串名称; 城市*父母; public: City(字符串nam,双dcov); City(字符串nam,double dcov,City * c); City(const City& obj) { this->名称= obj.name;
..
非多态继承是否需要此指针调整?在所有情况下,我都看到此指针调整讨论了通过关键字virtual使用涉及多态继承的示例. 我尚不清楚非多态继承是否需要此指针调整. 一个非常简单的例子是: struct Base1 { void b1() {} }; struct Base2 { void b2() {} }; struct Derived : public Bas
..
我正在阅读Bjarne的论文:在第370页的第3节中,Bjarne说:“编译器将成员函数的调用转换为带有“额外"参数的“普通"函数调用;“额外"参数是指向该对象的指针成员函数被调用." 我对这个论点感到困惑.请参见以下两个示例: 示例1 :(第372页) class A { int a; virtual void f(int); virtual void
..
是否可以将自身中的一个std::function替换为另一个std::function? 以下代码无法编译: #include #include int main() { std::function func = []() { std::cout
..
假设我有两个这样的ES6类: class Base { static something(){ console.log(this); } } 类派生延伸基数{ } 然后我打这样的电话: Derived.something(); 请注意,我正在调用超类上定义的静态方法通过子类。 这不给我错误。打印 [功能:派生]
..
注意:为了澄清,问题不在于一般使用 restrict 关键字,而是关于将其应用于成员函数如此处所述。 gcc允许您使用 __ restrict __ (相当于C99的 restrict )限定符的GNU ++在一个成员函数上,有效地使这个成为函数范围内的一个限制限定指针。牛肉在哪里? 大多数成员函数在其他成员上工作,通过这个访问它们,这是一个 T * const (并且通常是不确定的)
..
我有问题的指针成员函数调用。在函数指针调用之外的指针“this”的地址与调用内部不同,因此对类变量的所有访问都会导致错误的值。 我在这里包含代码。 class ClassInterface { public: ClassInterface(void); 〜ClassInterface(void); }; class ClassA:public ClassInter
..
#include class Foo { public: Foo(char x); Foo(char x,int y); 〜Foo(); void abc(); void dev(); }; void Foo :: dev() { printf(“inside dev \\\ ”); } void Foo :: abc
..
如何让test.calculate中的函数指针赋值(也许是其余的)工作? #include class test { int a; int b; int add(){ return a + b; } int multiply(){ return a * b; } public: int calculate(char
..
我需要理解这个指针概念,最好用一个例子。 所以请使用简单的语言,这样我就可以更好的理解了。 解决方案 此是指向其类的实例的指针 如果你已经声明了一个类,它有一个私有成员 foo bar 可通过 bar , foo code> this-> foo ,但不通过 instance-> foo b
..
我有一个主类,我喜欢传递它的指针引用对象创建,但它给我错误: 错误1错误C2664:'GameController :: GameController(GameLayer *&)': 无法将参数1从'GameLayer * const'转换为'GameLayer *&' 我在GameLayer(主对象)中有什么 m_pGameController = new GameCont
..
我有一个类模板 Wrap 使用递归成员函数 test(int)传递给具有lambda( std :: accumulate 在下面的代码)的STL算法。 如果我使用默认捕获列表 = ,并使我的递归meber函数 static ,一切都很好,并得到我想要的结果。 但是,如果我使它成为非静态成员函数,Visual C ++和gcc 4.7.2都会抱怨一个单位化的 this -poi
..
我在阅读这篇文章“虚拟方法表” 上述文章中的示例: B1类{ public: void f0 {} virtual void f1(){} int int_in_b1; }; class B2 { public: virtual void f2(){} int int_in_b2; }; class D:public B1,public B2
..
“this”指针存储在内存中的什么位置?是分配在堆栈,堆还是数据段? #include using namespace std; class ClassA { int a,b; public: void add() { a = 10; b = 20; cout
..