我们什么时候应该将代码封装为"类"?

her*_*tao 1 c++ oop encapsulation class

到目前为止,我回顾了我的代码,发现我很少写class.或者,换句话说,我没有看到使用它们的价值.我的意思是,几乎编码中的所有东西,我都可以通过编写函数而不使用类来完成它们,并.h/.cpp根据它们的功能将它们分组到不同的文件中.

即使在我参与了几个项目之后,我仍然感觉不到这样做的紧迫性,因为没有重大挑战,进展顺利.我主要使用C++(有时是MATLAB).

请注意,我确实使用struct了很多,我知道结构和类对C++没有太大的区别.但我只使用struct进行数据存储(将数据组合在一起).数据不需要流量控制(即维护或保护内部状态的getter/setter),也不需要开始获取任何主要功能.

也许我错过了一些关于OOP的基本知识.那么我们何时应该使用类封装我们的代码?有人可以分享你的意见吗?

Jos*_*eld 5

在C++中,除了使用不同的默认访问修饰符之外,a struct和a class都是相同的.struct默认情况下public,class成员是成员,而默认情况下是成员private.如果我们将C++中的类视为class具有封装数据成员和公开成员函数的类来公开与该数据相关的功能,那么以下是您想要使用类的一些好建议:

  1. 您需要存储一些由相关数据项组成的状态,并且......
  2. 您需要在此状态上强加一些不变量,或者为此状态提供一些替代接口.

如果你只有建议1,那么你可能只想要一个结构.请参阅类应强制执行不变量.