& quot; Правило большого пальца & quot; для свободной функции против функции-члена

Существует популярное руководство (Скотт Мейерс, Клаус Иглбергер и т. Д.), О котором я недавно подумал, и которое в основном предпочитаю не-членские (свободные) функции функциям-членам. Я замечаю, что действительно могу вытащить большинство своих функций-членов наружу, но мне трудно понять, когда это на самом деле что я должен делать.

Вот простой пример, функция, которая печатает вектор строк (частный элемент данных) для консоли некоторым форматированным способом:

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";
}

Мне трудно принять решение в простых случаях, подобных этому, мне кажется, что в краткосрочной перспективе функция-член становится немного более элегантной, в то время как свободная функция может адаптироваться к нескольким объектам по мере того, как программа становится больше. У кого-нибудь есть какое-то эмпирическое правило, чтобы помочь решить? Я просто обдумываю это? Благодарю.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]