如果问题标题没有有效地(或根本)反映我的实际问题,我表示歉意;这是我第一次问或回答有关计算器和可能出了差错......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