【发布时间】:2015-04-21 04:33:38
【问题描述】:
我正在用 C++ 编写一个程序,并考虑到面向对象的设计,它将二手车记录保存在数据库中。我有一个按年份对汽车进行排序的函数,但该函数应该是它自己的类中的方法、汽车类中的方法,还是只是任何类之外的函数?我们被教导在面向对象设计中,一切都应该在它自己的类中,并且每个类应该只有一个责任,所以我倾向于将函数作为方法放在它自己的类中,但这似乎没有必要。我该怎么办?
【问题讨论】:
-
另外,只有方法的类是否需要构造函数,即使该类不包含数据成员?
-
您为汽车使用什么样的容器(例如数组)?您是否熟悉标准库容器(例如
vector<Car>)? -
@beta 它将是汽车的数组,是的。抱歉,我对此并不熟悉,我对 C++ 中的类和面向对象设计的知识非常有限
-
@beta 我只被教导使用“使用命名空间标准”,如果这适用于你所说的
-
我要给你的最好的建议是不要再把 OOP/OOD 看作是近乎宗教层面的神圣事物。设计是由很多因素驱动的,最重要的是一个团队的需求,他们必须顺利合作。没有 OO 方法可以证明问题的一个分区比另一个分区更正确。此外,OOP 并不意味着任何东西都必须在一个类中。类在有用时是抽象。但不是“必须”。没有什么可以例如对一个方法说:
void SortByAge( CarList& cars );或CarList SortByAge( const CarList&cars);
标签: c++ function class methods object-oriented-analysis