我最近考虑了一个流行的指南(Scott Meyers,Klaus Iglberger等),基本上 更喜欢非成员(免费)功能到成员函数。 我注意到我确实可以将我的大多数会员功能拉到外面,但是我很难搞清楚这实际上是什么时候<我应该做什么< / em>的
这是一个简单的例子,一个以某种格式化方式将字符串向量(私有数据成员)打印到控制台的函数:
void list::print() const {
std::cout << "Printing list -> " << list_.size() << " entries.\n";
std::cout << "--- START OF LIST ---\n";
for (const auto &s : list_) {
std::cout << s.size() << " : " << s << '\n';
}
std::cout << "--- END OF LIST ---\n";
}
我觉得很难在这样的简单情况下做出决定,在我看来,在短期内,成员函数更优雅,而自由函数可以随着程序变大而适应多个对象。有没有人有某种经验法则来帮助决定?我只是想过这个吗?感谢。