我有一个简单的数据结构,一个由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];
}
};
我也有几种针对此数据结构的算法。他们所有人都只能通过
triangular_matrix
访问operator()
。使这些算法的
triangular_matrix
成为成员函数而不是使其成为非成员函数(在非全局命名空间中)的优缺点是什么? 最佳答案
在C ++中,通常将不需要成为成员函数的所有内容都放入非成员函数中。赫伯·萨特(Herb Sutter)不久前写了一个nice article。
关于c++ - 算法是成员函数还是非成员函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11873598/