簡體   English   中英

算法是成員函數還是非成員函數?

[英]Algorithms as member or non-member functions?

我有一個簡單的數據結構,一個由kl索引的三角矩陣,其中l1Nk1l

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM