В чем преимущество бесплатной функции (в анонимном пространстве имен и доступной только в одном исходном файле) и отправки всех переменных в качестве параметров в отличие от функции частного класса, не содержащей никаких параметров и доступ к переменным-членам напрямую? Благодаря!Свободная функция против функции-члена
Заголовок:
Class A {
int myVariable;
void DoSomething() {
myVariable = 1;
}
};
Источник:
namespace {
void DoSomething2(int &a) {
a = 1;
}
}
int A::SomeFunction() {
DoSomething2(myVariable); // calling free function
DoSomething(); // calling member fucntion
}
Если вы предпочитаете сделать их членами то, что если у меня есть случай, когда я первый вызов функции, которая не имеет доступ переменных-членов, но это функция вызывает другую функцию, которая обращается к члену. Должны ли они оба быть членами или свободными?
Можете ли вы хотя бы написать код, который * пытается * скомпилировать? – Shoe
@StephaneRolland нет, эта ссылка о публичном интерфейсе, а не о реализации – TemplateRex
@TemplateRex позвольте мне настаивать, речь идет об использовании функций-членов или нет. Позвольте мне процитировать ответ: «Имея много и много методов, напрямую зависящих от внутренних элементов класса, малейшее изменение подразумевает полную переписку. Этого не должно быть». –