[問題] 在物件中取得類別class的指標

看板C_and_CPP作者 (馬赫迪)時間14年前 (2010/03/17 02:14), 編輯推噓0(0011)
留言11則, 4人參與, 最新討論串1/1
請問 今天如果物件內的函式需要用到物件本身的指標 例如下面的程式 class MYCLASS { private: MYCLASS *B; public: void FUNC(MYCLASS *ptr) { B=ptr; } }; int main() { MYCLASS A; A.FUNC(&A); } 物件A屬於類別MYCLASS 如果要讓類別中的函式取得物件的記憶體位置 目前想到的辦法只有像上面程式傳址進去而已 有沒有方法可以在不傳址的情形下,單單呼叫 A.FUNC(); 就可以讓物件A中的指標B取得物件本身的位置 除了傳址進去之外有更好的方法嗎? 在這裡先謝過 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.145.196

03/17 02:30, , 1F
現在想到是在物件中寫一個initial的函式將指標存入物件
03/17 02:30, 1F

03/17 02:32, , 2F
中的變數,下次需要時可直接讀取該member就能拿到指標
03/17 02:32, 2F

03/17 02:58, , 3F
沒有。
03/17 02:58, 3F

03/17 08:53, , 4F
不就是 this
03/17 08:53, 4F

03/17 09:07, , 5F
可以講更仔細一點嗎= =
03/17 09:07, 5F

03/17 09:11, , 6F
我了解了= =
03/17 09:11, 6F

03/17 10:28, , 7F
絕大部份情況下, 連 this 也不必, 直接 access 自己
03/17 10:28, 7F

03/17 10:28, , 8F
的 member 就好了...
03/17 10:28, 8F

03/17 11:58, , 9F
我沒看錯的話,他要做的是存取同類別的物件吧?並不是物件
03/17 11:58, 9F

03/17 11:58, , 10F
本身,所以 this 應該是沒有用。
03/17 11:58, 10F

03/17 11:59, , 11F
只是他的 main() 寫得有點讓人會誤解。
03/17 11:59, 11F
文章代碼(AID): #1Bdyg5N6 (C_and_CPP)