В чем преимущество бесплатной функции (в анонимном пространстве имен и доступной только в одном исходном файле) и отправки всех переменных в качестве параметров в отличие от наличия функции частного класса, свободной от любых параметров и непосредственного доступа к переменным-членам? Спасибо!
Заголовок:
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
}
Если вы предпочитаете делать их членами, то что, если у меня есть случай, когда я сначала вызываю функцию, которая не имеет доступа к каким-либо переменным-членам, но эта функция вызывает другую функцию, которая обращается к члену. Должны ли они оба быть функциями-членами или бесплатными?