类成员值的合法或错误成员用法
Legit or wrong member usage of class member value?
***编辑***在几条基于直觉赞同我自己观点的评论之后(作为参数传递(
我真正想要的是关于什么应该或不应该被用作班级成员的指导方针****编辑***
假设课堂示例少数公共功能
class Example
{
public:
A(int x);
G();
H();
Z();
private:
B();
C();
D();
E()
}
正在呼叫A,并呼叫A->B->C->D->E。在E函数中,我们需要使用A中得到的X参数,但B、C、D与之无关。
一种选择是将int x存储为类成员,然后在E中获取它。另一种方法是将它作为参数通过B->C-D->E。
在我看来,将它存储为成员是一种糟糕的做法,因为它与类状态或数据无关,但在大多数代码中,我看到的就是这样做的。
尝试在谷歌上搜索类成员的合法用法,但没有找到任何内容。
在我看来,oop中的成员使用全球。
我在哪里可以找到关于它的意见或数据?
我使用的是c++
另一种方法是将其作为参数通过B->C-D->E。
这个选项很有意义。
如果E需要一个自变量,那么它应该接受一个自变量。如果D调用E,那么D应该提供该参数。如果D不能提供一个其他的,那么它也需要它来接受这个论点,以此类推。我推荐这种方法。
在我看来,将其存储为成员是一种糟糕的做法,因为它与类状态或数据无关
这是合理的推理。
还要考虑是否所有这些函数都引用了对象本身。如果不是,它们可能应该是静态成员,甚至是自由函数。
从A
的接口判断,x
似乎不是类的固有属性。因此,将它作为类的成员变量是没有意义的。
如果E
需要它,它必须将它作为函数的参数
如果D
需要用它调用E
,则需要将它作为函数的参数
等等…
我认为您最好的选择是将x
从A()
传递到E()
。
class Example
{
public:
A(int x);
G();
H();
Z();
private:
B(int x);
C(int x);
D(int x);
E(int x);
};
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 获取 C2039:"交换":不是成员错误,如何解决?
- 在C 中获取Invalig使用非静态数据成员错误
- 非静态数据成员错误的使用无效
- 是非静态数据成员错误的CPPReference定义
- C++ 使用 & 从数组中的对象创建指针成员 [错误]
- C++,类:成员错误的行外声明
- 打印矢量成员.错误
- 可视化解决VS 2003中指向成员错误的c++指针
- 使用 '&' 创建指向成员错误的指针
- 无法访问在类"QReadWriteLock"中声明的私有成员错误 1 错误 C2248:'QReadWriteLock::QReadWriteLock'
- 如何修复MacOSX上全局命名空间中缺少时间相关的无成员错误
- 我的错误,还是英特尔编译器的错误?非静态成员错误的大小
- 链表访问私有成员错误C2248
- 模板友元函数 C++ 中无效使用非静态数据成员错误
- 使用 '&' 创建指向成员错误的指针
- c++友元函数不能访问私有成员;错误2248
- c++中的静态成员错误
- 类模板的静态成员错误
- 修改 int 类型的结构的成员错误:从 'int' 到 'const char*' [-fallowive] 的