在C 语言中,并没有 “this” 指针这个概念 然而,在 C++ 语言中,“this” 指针是一个特殊的指针,它在类的成员函数中被隐式使用,以指向调用该成员函数的对象。“this” 指针的主要作用如下: 访问调用对象的成员变量:当成员函数需要访问调用对象的成员变量时,可以通过 “this” 指针来实现。 解决名称冲突:当成员...
this指针是 C++ 中的一个特殊指针,它在每个非静态成员函数内部可用。这个指针指向了调用成员函数的对象。换句话说,通过this指针,成员函数能够访问调用它的对象的成员变量和其他成员函数。 1.1.1this指针的存在形式 在成员函数内部,this指针是一个隐式参数,它指向调用该函数的对象实例。但重要的是,this指针并不占用对...
this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。 例如,调用date.SetMonth(9) <===> ...
c++在某一个对象调用某个成员函数的时候,把这个对象的地址,隐式地作为这个函数的参数,传给了成员函数,所有可以在没成员函数里显示的使用this指针。 可以用下面的程序验证上面的理论。 打印类占用内存的大小和对象占用内存的大小,就可以看出来,只有成员变量占用的内存空间(注意,内存对齐)。 #include<iostream>using na...
从这个简单示例中可以看出,在成员函数内部使用this指针可以准确地访问当前对象的成员变量。 二、this指针的意义和重要性 2.1区分同名变量 在某些情况下,类的成员变量和局部变量可能具有相同的名称,此时可以通过使用this指针来准确定位到类成员。这种情况下,this指针起到了一个重要的标识作用。
(1) 非虚函数成员指针 ptr部分内容为函数指针(指向一个全局函数,该函数的第一个参数为this指针),adj部分始终为0。例: 代码示例: View Code (2) 虚函数成员指针 ptr部分内容为虚函数对应的函数指针在虚函数表中的偏移地址加1(之所以加1是为了用0表示空指针),而adj部分为调节this指针的偏移字节数。例: ...
this指针 一个类当中,有一个很隐蔽的特殊指针,它就是this指针! 为什么说它特殊?因为只要定义一个类,系统就会预定义个名字叫做this名且指向当前对象的指针。虽然我们看不到但却可以使用它。 比如,我们来看一个时钟类的一个成员函数,用来设置时间传值的代码: ...
在C++ 中,`this` 指针是一个特殊的指针,它在类的成员函数中被隐式使用,以指向调用该成员函数的对象。`this` 指针的主要作用是:1. 访问调用对象的成员变量。2. 调用调用对象的其...
this是一个指向对象自身的指针。举个例子:class Test{ int i, j;public:void set(int a, int b){ this->i = a;//将调用该函数的对象中的成员i 赋值为a this->j = b;//将调用该函数的对象中的成员j 赋值为b } };int main(){ Test t;t.set(10, 20);//这时set函数中的this就...
“ this”指针作为隐藏参数传递给所有非静态成员函数调用,并且可用作所有非静态函数主体内的局部变量。“ this”指针在静态成员函数中不可用,因为可以在没有任何对象(带有类名)的情况下调用静态成员函数。 对于X类, this指针的类型为'X *'。另外,如果X的成员函数声明为const,则此指针的类型为'const X *' ...