1
我有一個包含指向另一個類的對象的指針集合的類。 基本上它看起來是這樣的:將方法傳遞給包含對象指針的集合的所有元素,C++
class connectionSLOT: private std::set<connectionSLOT*>
{
...
};
這很簡單,工作正常表示(導演)圖,也許。我的類還包含一些簡單的方法,如connect(),disconnect()等,他們都希望對象指針作爲參數,並返回這樣的指針。 (即它們的聲明在其名稱中唯一有所不同) 例如:
connectionSLOT* connectionSLOT::connect(connectionSLOT *A)
{
insert (A); return A;
}
或者:
connectionSLOT* connectionSLOT::disconnect(connectionSLOT *A)
{
erase(A); return this;
}
所以,我的問題是:如何才能讓這些應用不能在這些功能的新方法對象本身,但集合中包含的所有對象(即包含在調用對象中)?
我想有這樣的事情:
connectionSLOT* new_method('passing a method (and its argument) ')
{
for(it=begin();it!=end();++it) 'execute the method on (*it)' ;
return something;
}
這將適用於所有的鄰居點連接到特定的頂點,也許。 但由於NEW_METHOD()本身也是應有的功能它可以通過太:
int main()
{
// ... here declaring some objects and connection amongst them...
A->new_method(new_method(disconnect(B))) ;
/* calling new_method() recursively to disconnect all the vertices from B which ones are
reachable from A in two steps */
...
}
我希望,有可能以某種方式做。 (語法基本上不重要) 感謝任何建議。
Robert
哇!感謝您的快速回答!是的,我使用該版本(使用gnu C++編譯器),您的解決方案正是我需要的! :) 非常感謝! – 2013-03-25 07:44:44