如果問題標題沒有有效地(或根本)反映我的實際問題,我表示歉意;這是我第一次問或回答有關計算器和可能出了差錯......C++ - 在定義類的成員函數時,內部應該使用成員變量名還是其getter函數?
無論如何,我的(闡述)的問題是:
當定義一個類的公共成員函數需要使用私有成員變量,其中每一個(私人變量)都有公共成員「getter」函數(請不要回答「丟失getter/setter ...」,我正在使用它們),它會更好 - 實際上「更好」,比如它使得類在C++編譯器之間更「可擴展」,哪個選項允許更多的「向前兼容性」 - 使用this-> m_variable或使用this-> getm_variable()?
我已經包含下面的代碼示例(創建一個名爲家庭的一類),從項目,我目前的工作,試圖澄清正是我的意思:
片段Family.h的
private:
Person* children; // array of Person objects - Person is a member struct
size_t numChildren;
public:
enum gender { NONE = 0, MALE, FEMALE }
size_t countChildren() { return numChildren; }
size_t countChildren(gender g);
Person* getChild() { return children; }
Family.cpp的片段
// this is the specific function example:
size_t Family::countChildren(gender g) {
for (size_t i = 0; i < this->numChildren; i++) {
...CODE TO COUNT CHILDREN OF SPECIFIED GENDER...
}
return # of children with gender g // pseudocode, obviously...
}
所以,現在對於t他的問題在這個例子中改變了:
在countChildren(gender g)
函數的定義中,如果我有i < this->numChildren;
,那麼使用i < this->countChildren();
會更好一些(就我之前陳述的度量而言)? 類似地,當迭代同一個for循環的children數組時,使用*(this->children + i)
或使用*(this->getChild() + i);
來定義當前迭代中的每個Person*
會更好嗎?
預先感謝您的任何幫助,我很抱歉,如果這個問題太「基於討論」的stackoverflow,正如我前面提到的,這是我第一次問一個問題。
我不太理解;你的意思是「我應該通過變量還是內部人員來引用內部成員」? (另外,歡迎,你已經比那些要求作業解決方案的人更好!) – JesseTG
謝謝,是的,這正是我的意思。我試圖快速編輯標題以更好地反映我的問題的目的。 – Steven94