我应该使用类来解决数学问题吗?

时间:2012-01-03 01:01:32

标签: oop

这是一个关于使用面向对象语言的问题。我一直在使用C ++来解决Project Euler,我最近在一篇文章中读到很多人都把C ++看作是一种过程语言,因为你可以在不创建类的情况下逃脱。我一直在做那个。

我的问题是,用面向对象的语言int mult_order(int base, int mod)为乘法顺序编写函数是不是“坏”,对于gcd来说是gcd(int a, int b),而不是将它们放在一个类中。为了学习,我一直在“重新发明轮子” - 我应该把它们放在一个库中,还是创建一个Math类或类似的东西?

3 个答案:

答案 0 :(得分:3)

从我所教过的内容(以及我所经历过的内容)来看,OOP背后的基本理念很简单:

在让您的生活更轻松的时候使用它。

很明显,出于您的目的,使用课程不会使事情变得更容易 - 您没有理由重复访问执行这些数学操作的单个对象 - 或创建一个类会产生不必要的开销。

对于你的例子,我认为没有对象你会好的,但是考虑到将来的某个地方,可能有必要创建一个可以处理这些操作的对象。

答案 1 :(得分:1)

您似乎需要使用namespace而不是class

拥有不属于某个类的函数没有任何问题,但您仍应将它们组合在一起。

当您需要对象,继承或状态的属性时,请使用类,而不仅仅是为了将函数组合在一起。

答案 2 :(得分:0)

使用类的主要好处是通过继承来重用。因此,如果您发现您有一些常见代码,然后是其他代码部分,那么创建类可以帮助您。如果没有,那么你可能就像你一样。并非所有问题都必须通过面向对象编程来解决。