如果问题标题不能有效(或根本)反映我的实际问题,我深表歉意;这是我第一次在 stackoverflow 上提问或回答,可能搞砸了……
无论如何,我的(详细)问题是这样的:
在需要使用私有成员变量的类中定义公共成员函数时,每个变量(私有变量)都具有公共成员“getter”函数(请不要回答说“失去 getter/setter...”,我使用它们),会不会更好——实际上是“更好”,比如让类在 C++ 编译器之间更“可扩展”,哪个选项允许更多“前向兼容性”——使用 this->m_variable 或使用 this- >getm_variable()?
我从我目前正在进行的项目中包含了以下代码示例(创建一个名为 Family 的类),以尝试澄清我的意思:
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...
}
因此,现在对于示例的问题已更改:
countChildren(gender g)
在我拥有的函数的定义中i < this->numChildren;
(就我之前所说的指标而言)使用会更好i < this->countChildren();
吗?同样,当为同一个 for 循环遍历 children 数组时,Person*
在当前迭代中使用*(this->children + i)
OR to use来定义 each 会更好*(this->getChild() + i);
吗?
提前感谢您的帮助,如果这个问题对于stackoverflow来说太“基于讨论”,我深表歉意,正如我之前提到的,这是我第一次提出问题。