导航:首页 > 使用方法 > cthis指针使用方法

cthis指针使用方法

发布时间:2022-03-14 15:10:59

‘壹’ C++中的this指针的使用方法,有哪位高手清楚的吗

this指针实际上是每个非static成员函数的隐式参数,指向调用该函数的对象,编译器在调用该函数的每个地方自动传递当前对象的地址给该参数。

如果你写过C语言操作结构体的函数代码的话,你应该知道一般这种函数的第一个参数应该是该结构体变量的指针,该指针用于访问结构体变量中的成员,而且调用该函数的时候还要传递结构体变量的地址。这种指针相当于C++的this,只不过在C++里,编译器替你做。

所以main函数的语句经过编译器处理时会变成如下:
int main() {
Human whw;
Human::Introceself( &whw ); // &whw 就等于 == this 了。

}

‘贰’ c++的this指针怎么使用,有没有详细的资料

this是对象调用函数中的隐含指针,只在对象调用时有效
如果你要显示他的值,把它强制转换成int(this)

‘叁’ this指针怎么用

在一个类当中调用,,通常定义在变量前面。表示指向本个类当中的的变量,而不是类外的相同名的变量,主要作用是区分形同名字的变量

‘肆’ this指针的用法

简单来说,这个东西只能在类的成员函数中用, 用法是我的XX,XX表示变量或者函数
this->a
this->test();
this就是指代类对象本身, 可以不写
当参数与成员变量同名时,可以用this来区分
this->a = a;

静态成员函数没有this

‘伍’ 谁能告诉我,C语言中的this指针的具体详细的定义和使用

C++中this指针的理解和用法
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比 int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。
理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变量。
通常在class定义时要用到类型变量自身时,因为这时候还不知道变量名(为了通用也不可能固定实际的变量名),就用this这样的指针来使用变量自身。

1. this指针的用处:
一 个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态 成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的, 它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。
例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),this帮助完成了这一转换 .
2. this指针的使用:
一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。

‘陆’ 关于this指针的用法

this代表当前对像

‘柒’ C#中this指针的用法

this 关键字引用类的当前实例,还可用作扩展方法的第一个参数的修饰符。
以下是 this 的常用用途:

限定被相似的名称隐藏的成员,例如:
public Employee(string name, string alias)
{
this.name = name;
this.alias = alias;
}

将对象作为参数传递到其他方法,例如:
CalcTax(this);

声明索引器,例如:
public int this [int param]
{
get { return array[param]; }
set { array[param] = value; }
}

由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。

示例
在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。

// keywords_this.cs
// this example
using System;
class Employee
{
private string name;
private string alias;
private decimal salary = 3000.00m;

// Constructor:
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}

// Printing method:
public void printEmployee()
{
Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
// Passing the object to the CalcTax method by using this:
Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
}

public decimal Salary
{
get { return salary; }
}
}
class Tax
{
public static decimal CalcTax(Employee E)
{
return 0.08m * E.Salary;
}
}

class MainClass
{
static void Main()
{
// Create objects:
Employee E1 = new Employee("Mingda Pan", "mpan");

// Display results:
E1.printEmployee();
}
}

输出
Name: Mingda Pan
Alias: mpan
Taxes: $240.00

‘捌’ 怎么使用this指针

void A::(const A &a2)
{
this->x = a2.x;
this->y = a2.y;

}

‘玖’ C++中this指针的用法和意义是什么

1. this指针的用处:
一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。
例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),this帮助完成了这一转换
2. this指针的使用:
一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。
3. this指针程序示例:
this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。
根据以下程序来说明this指针
#include<iostream.h>
class Point
{
int x, y;
public:
Point(int a, int b) { x=a; y=b;}
void MovePoint( int a, int b){ x+=a; y+=b;}
void print(){ cout<<"x="<<x<<"y="<<y<<endl;}
};
void main( )
{
Point point1( 10,10);
point1.MovePoint(2,2);
point1.print( );
}
当对象point1调用MovePoint(2,2)函数时,即将point1对象的地址传递给了this指针。
MovePoint函数的原型应该是 void MovePoint( Point *this, int a, int b);第一个参数是指向该类对象的一个指针,我们在定义成员函数时没看见是因为这个参数在类中是隐含的。这样point1的地址传递给了this,所以在MovePoint函数中便显式的写成:
void MovePoint(int a, int b) { this->x +=a; this-> y+= b;}
即可以知道,point1调用该函数后,也就是point1的数据成员被调用并更新了值。
即该函数过程可写成 point1.x+= a; point1. y + = b;
4. 关于this指针的一个经典回答:
当你进入一个房子后,
你可以看见桌子、椅子、地板等,
但是房子你是看不到全貌了。
对于一个类的实例来说,
你可以看到它的成员函数、成员变量,
但是实例本身呢?
this是一个指针,它时时刻刻指向你这个实例本身

‘拾’ C++this指针的使用示例

this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象。全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址。
根据以下程序来说明this指针 #include<iostream>usingnamespacestd;classPoint{private:intx,y;public:Point(inta,intb){x=a;y=b;}voidMovePoint(inta,intb){x+=a;y+=b;}voidprint(){cout<<x=<<x<<y=<<y<<endl;}};intmain(){Pointpoint1(10,10);point1.MovePoint(2,2);point1.print();return0;}当对象point1调用MovePoint(2,2)函数时,即将point1对象的地址传递给了this指针。
MovePoint函数的原型应该是 void MovePoint( Point *this, int a, int b);第一个参数是指向该类对象的一个指针,我们在定义成员函数时没看见是因为这个参数在类中是隐含的。这样point1的地址传递给了this,所以在MovePoint函数中便显式的写成:
void MovePoint(int a, int b) { this->x +=a; this-> y+= b;}
即可以知道,point1调用该函数后,也就是point1的数据成员被调用并更新了值。
4. 关于this指针的一个经典回答:
当你进入一个房子后,
你可以看见桌子、椅子、地板等,
但是房子你是看不到全貌了。
对于一个类的实例来说,
你可以看到它的成员函数、成员变量,
但是实例本身呢?
this是一个指针,它时时刻刻指向你这个实例本身
5.使用this指针要注意的事项
相信大家对指针的用法已经很熟了,这里也不多说些定义性的东西了,只说一下指针使用中的注意事项吧。
一.在定义指针的时候注意连续声明多个指针时容易犯的错误,例如int * a,b;这种声明是声明了一个指向int类型变量的指针a和一个int型的变量b,这时候要清醒的记着,而不要混淆成是声明了两个int型指针。
二.要避免使用未初始化的指针。很多运行时错误都是由未初始化的指针导致的,而且这种错误又不能被编译器检查所以很难被发现。这时的解决办法就是尽量在使用指针的时候定义它,如果早定义的话一定要记得初始化,当然初始化时可以直接使用cstdlib中定义的NULL也可以直接赋值为0,这是很好的编程习惯。
三.指针赋值时一定要保证类型匹配,由于指针类型确定指针所指向对象的类型,因此初始化或赋值时必须保证类型匹配,这样才能在指针上执行相应的操作。

阅读全文

与cthis指针使用方法相关的资料

热点内容
期货利润计算方法 浏览:991
手机电脑大文件传输用什么方法 浏览:62
宝宝手指发育锻炼方法 浏览:743
审计案例分析的方法 浏览:162
excel表格画任意划线的方法步骤 浏览:486
薄荷叶菊花泡水正确方法 浏览:550
如何用简单的方法去除小黑虫 浏览:197
最简单的套筒方法 浏览:406
抹灰的重量计算方法 浏览:315
乒乓球桌底座安装方法 浏览:969
淀粉白度检测方法食品伙伴网 浏览:745
手鼓的使用方法视频 浏览:952
电脑屏保动态视频怎么设置在哪里设置方法 浏览:188
素描拿笔的方法有哪些 浏览:307
移门柜安装方法 浏览:399
慢性咳嗽的治疗方法 浏览:990
科学研究论文方法 浏览:679
隔空给手机充电的方法 浏览:700
数学因式分解方程的方法怎么用 浏览:644
双层弹簧臂力器正确锻炼方法 浏览:507