使用名稱/標識或傳遞實際對象來刪除對象會更有意義嗎?例如:設計 - 刪除名稱或對象?
void MyList::remove(MyObject &myObject) { /* blah */ }
// or
void MyList::remove(std::string id) { /* blah */ }
我已經使用了兩者,但我無法真正看到優點與缺點。有一個首選標準嗎?
編輯:這可能是一個更好的例子提供我想要做的事:
比方說,我有一個交易的集合賬戶類。我最好傳遞交易對象還是Tranaction的ID?
class Account
{
private List<Transaction> transaction = new List<Transaction>();
public void Remove(Transaction transaction) { }
// OR
public void Remove(string name) { }
// OR
public void Remove(Guid id) { }
}
注意:這個問題有C++和C#代碼...
如果你想模仿標準庫,你會使用迭代器。 – user657267 2014-12-05 03:31:38
在c#中怎麼樣? – keelerjr12 2014-12-05 03:32:26
提供了一個方法,通過名稱搜索不是很通用的,尤其是如果您的列表類是在哪裏的對象可能沒有名字的元素類型模板。 – 0x499602D2 2014-12-05 03:33:37