擁有一個自由函數(匿名命名空間且只能在單個源文件中可訪問)並將所有變量作爲參數發送,而不是使私有類成員函數不帶任何參數和直接訪問成員變量?謝謝!自由函數與成員函數
頭:
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讓我堅持,是關於使用成員函數還是不使用。讓我引用這樣一個答案:「有很多很多方法直接取決於班級的內部,最輕微的變化意味着整個重寫,不一定是這樣。」 –