C++——繼承時的this指針


1.this指針只在類的成員函數中使用,當類的成員函數須要用到本身的指針時就要用到this指針。但靜態函數不能使用this關鍵字,其解釋是:由於this是個引用,哪一個對象調用方法就引用哪一個對象。 而靜態方法有可能不是被對象調用的,this無從引用,也就是:靜態方法是屬於整個類的,this指的是當前的對象。好比:
class ExamThis
{
int ShowThis() //定義一個顯示本身指針的成員函數。
{
printf(「This is my this pointer %x \n「, this);
}
}; 函數

2.this的另外一個用途是調用當前對象的另外一個構造函數 ;工具

3.在你的方法中的某個形參名與當前對象的某個成員有相同的名字,這時爲了避免至於混淆,你便須要明確使用this關鍵字來指明你要使用某個成員,使用方法是 「this.成員名」 ,而不帶this的那個即是形參。 this

4.this後加參數則調用的是當前類具備相同參數的構造函數
class Person{
public static void prt(String s){
System.out.println(s);
}
Person(){
prt(A Person.);
}
Person(String name){
prt(A person name is+name);
}
}
public class Chinese extends Person{
Chinese(){
super(); //調用父類構造函數(1)
prt(A chinese.); //(4)
}
Chinese(String name){
super(name); //調用父類具備相同形參的構造函數(2)
prt(his name is+name);
}
Chinese(String name,int age){
this(name); //調用當前類具備相同形參的構造函數(3)
prt(his age is+age);
}
public static void main(String[] args){
Chinese cn=new Chinese();
cn=new Chinese(kevin);
cn=new Chinese(kevin,22);
}
} 指針

在構造函數中this用於限定被相同的名稱隱藏的成員,例如:
class Employee{
public Employee(string name, string alias) {
this.name = name;
this.alias = alias;
}
} 對象

將對象做爲參數傳遞到其餘方法時也要用this表達,例如:
CalcTax(this); 索引

聲明索引器時this更是不可或缺,例如:
public int this [int param]{
get { return array[param]; }
set { array[param] = value; }
} get

static 靜態方法 用法:
   一般,在一個類中定義一個方法爲static,那就是說,無需本類的對象便可調用此方法。由於this是個引用,哪一個對象調用方法就引用哪一個對象。 靜態方法是屬於整個類的,this指的是對當前的對象d的引用。以下所示:
class Simple{
static void go(){
System.out.println(Go...);
}
}
public class Cal{
public static void main(String[] args){
Simple.go();
}
}
  調用一個靜態方法就是「類名.方法名」,靜態方法的使用很簡單如上所示。通常來講,靜態方法經常爲應用程序中的其它類提供一些實用工具所用,在Java的類庫中大量的靜態方法正是出於此目的而定義的。string

相關文章
相關標籤/搜索