2016-04-26 95 views
-1

我如何傳遞一個模板類this指針指向這個類,即成員函數我如何傳遞一個模板類「這個」成員函數指針

template <typename T> 
class A 
{ 
.... 
process(A<T>* a) {}; 
someOtherFunction() {process(this)}; 
.... 
} 
+3

我真的不明白你的問題是什麼。例如,你能否說明如何在沒有模板的情況下做到這一點? –

+3

'this' ia總是隱式傳遞給非靜態成員函數。 –

+0

由於只是調用同一個對象的成員函數會自動「傳遞」這個'',所以你不知道你想做什麼。你的意思是你想在'A'類的另一個*對象中調用'process'嗎?另一個帶有另一個「T」的對象?你能否試着創建一個[最小,完整和可驗證的例子](http://stackoverflow.com/help/mcve)向我們展示,展示你想如何使用這個函數? –

回答

1

像這樣:

template <typename T> 
class A 
{ 
    static void process(A* a) {} 
    void someOtherFunction() {process(this)}; 
} 

您不需要指定T,並且process可以是static,因爲它明確地通過了this。但你可以讓它隱含地發生:

template <typename T> 
class A 
{ 
    void process() { A* a = this; } 
    void someOtherFunction() {process()}; 
}