我編碼一些東西在C++,和往常一樣,我們有一些「想法」如果在語言中存在類似的東西...C++新的對象作爲參數(和Java一樣)
我現在,隨着對作爲參數傳遞的對象有懷疑。
我總是這樣做,是創建一個新的對象,並通過它的實例作爲一個指針,就像這樣:
mObject* obj1 = new mObject();
obj1->callback(the_callback_function);
function_that_needs_obj(obj1); // (or the reference, if I didn't instantiated a pointer).
這是確定的,工作OK,沒有問題與此有關。但是,正如我使用Java,我曾經這樣做:
function_that_needs_obj(new mObject(){
public void onCallback(){
// Custom code enters here....
}
});
是否有任何「排序」在C++中使用這樣的?因爲對於我需要創建的EACH回調:一個Extended class
或一個functionNamedVeryLongBecauseThereAreMany
必須寫在代碼的TOP上,並且這種「混淆」了很多代碼...
而且,所有Object變量,而無法訪問低谷this
如果我assing一個回調函數...
C++中的回調更容易。只要採取任何可調用類型並傳遞lambda。 – chris 2013-05-08 03:20:48
@chris,在「實現」回調中沒有問題,這只是一個強化代碼的問題......如果我向新對象發送可調用類型,則可調用類型將無法「訪問」對象數據,只有它使用全局範圍。 – 2013-05-08 03:23:33
對不起...我不是英國本地人...... – 2013-05-08 03:32:06