“ this”指针作为隐藏参数传递给所有非静态成员函数调用,并且可用作所有非静态函数主体内的局部变量。“ this”指针在静态成员函数中不可用,因为可以在没有任何对象(带有类名)的情况下调用静态成员函数。 对于X类, this指针的类型为'X *'。另外,如果X的成员函数声明为const,则此指针的类型为'const X *' 在早期...
再考虑一下C++的this指针,一个类中的成员函数,依据this指针来区分不同的对象,也就是说根据this指针实现了访问不同的对象的成员变量。 这是否也是多态的一种表现?这里所说的多态已经不是那个“父类指针指向子类对象”的教条了,而是体现在同一个类的不同对象之间,调用同一个成员函数,依据参数“this指针”来实现访...
t.set(10, 20);//这时set函数中的this就是指向t的指针,相当于this=&t;}
C++中this指针的理解和用法 先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比 int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有my...
this指针是普通函数的参数,所以this指针是如何凭空产生的呢? this指针是每个类的成员函数必备的默认参数,只是C++语法将this指针隐藏起来了。但普通参数该做的事,this指针都做了。 那么是谁给类的成员函数输入这个this指针呢? 首先,主函数main函数调用普通函数和类的成员函数的汇编指令是一样的。所以,从CPU的角度,输...
}private:charName[MAX];intNum;floatPrice;floatTotal_price; 可清楚地看出,Get_obj方法中的参数与私有数据成员同名,但是使用this指针后,便不会报错。 总结:this指针是一个固定方向指针,代表当前对象,且只在对象调用方法的时候出现。
this 指针被隐含地声明为: ClassName *const this,这意味着不能给 this 指针赋值;在 ClassName 类的const 成员函数中,this 指针的类型为:const ClassName* const,这说明不能对 this 指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作); this 并不是一个常规变量,而是个右值,所以不能取...
this this是一种实体,仅在类的非静态成员中使用,是指向类的对象的指针。 typedef 用以给数据类型取别名。 virtual 声明虚基类或虚函数。具有虚基类或虚函数的类是多态类(polymorphic class),需要运行时提供支持来判断成员函数调用分派到的具体类型。 typeid 返回指针或引用所指对象的实际类型。 typeid是操作符,不是...
this指针的实际形式 我们一般情况下都会省略this 一个类的对象作为另一个类的成员 因为类本身就是一种新的数据类型, 所以一个类的对象可以作为另一个类的成员 像这样: 类和对象的性质 对象的性质 同一类的对象之间可以相互赋值 Point a(2, 3); Point b = a;复制代码 ...
不要调用基类 CDialog::OnCancel,因为它会调用 EndDialog,这将使对话框不可见,但不会销毁它。 另外,还应为无模式对话框替代 PostNcDestroy,以便删除 this,因为无模式对话框通常会分配有 new。 模式对话框通常是在框架上构造的,不需要 PostNcDestroy 清理。