【发布时间】:2023-03-30 21:18:01
【问题描述】:
如果问题标题没有有效(或根本)反映我的实际问题,我深表歉意;这是我第一次在 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 数组时,在当前迭代中使用 *(this->children + i) 或使用 *(this->getChild() + i); 定义每个 Person* 会更好吗?
提前感谢您的帮助,如果这个问题对于 stackoverflow 来说过于“基于讨论”,我深表歉意,正如我之前提到的,这是我第一次提出问题。
【问题讨论】:
-
我不太明白;您的意思是“我应该通过变量还是吸气剂在内部引用成员”? (另外,欢迎您,您已经比那些要求家庭作业解决方案的人做得更好了!)
-
谢谢,是的,这正是我的意思。我试图快速编辑标题以更好地反映我的问题的目的。
标签: c++ class member-functions class-members member-variables