gpt4 book ai didi

C++ 私有(private)数据成员访问 : good practices

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:36 25 4
gpt4 key购买 nike

假设我们处于这种情况:

class C {
int a, b;
public:
C(int aa, int bb) {
setA(aa);
setB(bb);
}
void setA(int aa) { a = aa; }
int getA() { return a; }
void setB(int bb) { b = bb; }
int getB() { return b; }
C add(const C c1, const C c2);
};

如果在 add() 中我需要访问数据成员,最好的方法是什么?我应该使用访问函数 setget(为客户端程序员创建),或者我可以简单地使用数据成员本身(c1.a, c1.b, c2.a, c2.b) 因为我是类设计者?

最佳答案

您可以使用任何一个。这取决于您是否希望您的 setters/getters 只是这样,或者也有一些额外的功能。例如,getter 可能还会更新该成员被访问次数的计数器,因此通过 getter 访问它们(即使是在类内部)可能更有意义。

无论哪种方式,这都不是设计中最重要的部分。您首先需要了解封装的真正含义。使成员成为private 并提供 getter 和 setter 并不比首先将它们成为public 更好(好吧,这对于调试目的来说更好,但在概念上是一样的).

你真的需要它们吗?

另外,getter 应该是 const 并且你应该通过 const 引用传递 c1c2

关于C++ 私有(private)数据成员访问 : good practices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16298467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com