對象數組與指針小結

對象數組的每一個元素都是同類的對象

  • 如果構造函數只有一個參數,在定義數組時可以直接在等號後面的花括號內提供實參
Student stud[3]={607080}
  • 在定義數組時提供的實參個數不能超過數組元素
  • 如果構造函數有多個參數,應當在花括號中分別寫出構造函數名並在括號內指定實參
    例:
Student Stud[3]
{
	Student(1001,18,87);
	Student(1002,19,76);
	Student(1003,18,72);
};

對象指針
在建立對象時,編譯系統會爲每一個對象分配一定的存儲空間,以存放其數據成員。對象空間的起始地址就是對象的指針,可以定義一個指針變量用來存放對象的地址。
一般形式:
類名 * 對象指針名

Time *pt;//定義pt爲指向Time類對象的指針變量
Time t1;//定義t1爲Time類對象
pt=&t1;//將t1的起始地址賦給pt
*pt//pt所指向的對象,即t1
(*pt).hour//pt所指向的對象中的hour成員,即t1.hour
pt->hour//pt所指向的對象中的hour成員,即t1.hour*pt).get_time()//調用pt所指向的對象中的get_time函數,即t1.get_time
pt->get.time()//調用pt所指向的對象中的get_time函數,即t1.get_time
  • 對象有地址,存放對象的起始地址的指針就是指向對象的指針變量
    對象中的成員也有地址,存放對象成員地址的指針變量就是指向對象成員的指針變量

定義指向對象數據成員的指針變量的一般形式爲:
數據類型名 * 指針變量名
定義指向公用成員函數的指針變量的一般形式爲:
*數據類型名(類名::指針變量名)(參數表列);
例:

p2=&Time::get_time;

使指針指向一個公用成員函數的一般形式是:
指針變量名=&類名::成員函數名;

this指針,是指向本類對象的指針,它的值是當前被調用的成員函數所在的對象的起始地址,this指針在需要時也可以顯式使用

return(height*width*length);//隱含使用this指針
return(this->height*this->width*this->length);//顯式使用this指針
  • 可以用this表示被調用的成員函數所在的對象,它就是this所指向的對象,即當前的對象,例如在成員函數a.volume()(假設已經定義)的函數體中,若出現this,它就是本對象a
    則上面的return語句可以改寫爲:
reutn((*this).height*(*this).width*(*this).length);

注意*this兩邊的括號不能省略,因爲成員運算符“.“的優先級要高於指針運算符

發佈了53 篇原創文章 · 獲贊 13 · 訪問量 5789
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章