[英]Algorithms as member or non-member functions?
我有一個簡單的數據結構,一個由k
和l
索引的三角矩陣,其中l
從1
到N
, k
從1
到l
:
template<int N> class triangular_matrix {
std::vector<int> elem;
public:
int& operator()(int k, int l) {
return elem[(N * (N + 1) - l * (l + 1)) / 2 + k - 1];
}
};
我也有幾種針對這種數據結構的算法。 它們都只能通過operator()
來訪問triangular_matrix
。
是什么使得這些算法的成員函數的利弊triangular_matrix
,而不是使他們非成員函數(在非全局命名空間)?
在C ++中是常見的把不必須是在非成員函數成員函數的一切。 赫伯·薩特(Herb Sutter)前一段時間寫了一篇不錯的文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.