在一个匿名命名空间中拥有一个自由函数并将所有变量作为参数传递,相对于拥有一个不带任何参数的私有类成员函数并直接访问成员变量,有什么优势呢?
如果你喜欢将它们设为成员函数,那么如果我有这样一种情况:我首先调用一个不访问任何成员变量的函数,但是这个函数又调用了另一个访问成员的函数。这两个函数应该都是成员函数还是自由函数呢?
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 function
}
如果你喜欢将它们设为成员函数,那么如果我有这样一种情况:我首先调用一个不访问任何成员变量的函数,但是这个函数又调用了另一个访问成员的函数。这两个函数应该都是成员函数还是自由函数呢?