C++什么时候是使用无默认构造函数与getter和setters与直接调用类中的变量的正确时机



即。当我有课说

class color()
{
Private:
std:: string _colors
Public:
color();
color(std::string colors);
std::string setColors(std::string colors);
std::string colors;
~color();
}

我想在另一个类中调用它,例如 main 以分配给可变颜色。

#include "color.h"
using namespace std;
int main()
{
color C;
C.colors = "Blue"; //is this correct
color("Blue"); //is this correct
C.setColors("Blue");//or is this correct.
return 0;
}

什么时候是使用的正确时间?

答案是:视情况而定。

关于你,你的偏好,你的团队的编码指南,你的代码的OO如何,甚至你的语言提供的语法糖,等等。这也很快成为可用/可读代码的问题。

我的(可以说是一般的(建议是:每当你编写简单的代码并且你的类更像数据而不是对象时,向成员提供公共访问权限是完全可以的(你可能希望在C++中使用结构而不是类,只是为了让你的决定更明显(。这不仅首先更容易编写,而且使用读取比无休止的 get-set 组合更容易。

另一方面,获取器和设置器允许您控制对内部成员的访问,例如用于验证,或相应地更新内部状态。AFAIK 这是封装,并保持更复杂的 OO-代码理智。

只是避免对相同的成员使用这两种方法,这很快就会变得令人困惑和烦恼。

使用 getter 和 setter (静态变量除外(始终是一种很好的做法。

最新更新