程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 基類和派生類--this

基類和派生類--this

編輯:C++入門知識

基類指針在程序運行的時候的確指向的是一個派生類的對象,但指針的類型仍然是基類指針。C++是一種強類型語言,因此不能用基類指針類型的指針直接調用派生類;而且,同一個類可能有多種不同的派生類,因此不知道實際指向的會是哪個派生類。
如果確信是某個派生類的話,可以用這樣的方法來調用:
((CB*)this)->b = 1; (CB為派生類)
或者
(dynamic_cast<CB*>(this))->b = 1;
即首先進行一次指針的強制類型轉換。
注意如果在構造函數中的話,CB的部分現在還是沒有初始化的,因此即使讀出b的數據,也不會是2。因為按照C++的標准,構造函數執行的順序是從基類到派生類。

return *this; 重載 = -= =等運算符時一般返回*this
return this; 指向對象本身的指針

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved