不访问成员数据的成员函数,以及封装,耦合和内聚

0 c++

具有成员函数但不对类的数据成员(直接或间接)进行操作的类是减少封装,更紧密的耦合还是更低的内聚力?为什么?
编辑:

class Data  
{  
 private:  
  int value_;  

 public:  
  Data(int value) : value_(value) {}  

  int compute(int coef)  
  {  
    check(coef);  
    return coef * value_;  
  }  

  void check(int n)  
  {  
    if (n < 0 || n > 344) {  
      throw string("Invalid coef");  
    }  
  }  
};  
Run Code Online (Sandbox Code Playgroud)

检查会员功能N验证传递给该参数的有效性计算成员函数,但它无关的数据成员的数据

jal*_*alf 6

这三个都是.您减少了封装,因为该函数可以对类的数据成员进行操作.即使没有必要,您也可以访问它,从而违反了封装.并且出于同样的原因,它导致较低的内聚力和更紧密的耦合(该类成为一组功能,似乎没有理由被组合在一起.

在C++中,在这种情况下,通常首选免费(非成员)函数.