0

我有一个简单的数据结构,一个由kand索引的三角矩阵l,其中l1toNk1to运行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];
    }
};

我还有几个算法在这个数据结构上运行。他们都triangular_matrix只能通过operator().

triangular_matrix使这些算法成为成员函数而不是使它们成为非成员函数(在非全局命名空间中)有什么优点和缺点?

4

1 回答 1

1

在 C++ 中,将不必成为成员函数的所有内容放在非成员函数中是很常见。Herb Sutter 不久前写了一篇关于它的好文章。

于 2012-08-08T21:43:02.420 回答