传递对象或创建新对象?

时间:2015-05-22 22:11:05

标签: c++ function class object

我有一个简单的问题。我有一个没有任何变量的类,它只是一个具有很多void函数的类(显示事物等)。当我创建该类的对象时,在程序进行过程中将一个对象传递给我的所有函数会更好/更有效,或者只是在程序进入新函数时重新创建它吗?请记住,对象没有需要保留的变量。提前感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

更有意义的是,类只有静态函数,根本不需要实例。反正你没有国家......

答案 1 :(得分:1)

如果其他空类中的函数永远不会改变...请考虑将它们设置为静态。或者将它们放在命名空间而不是类中。

另一方面......如果函数在运行时设置一次,比如说你根据os选择要使用哪些显示函数,那么将它们存储在全局中。或单身。

握紧手......如果大代码的不同部分的功能不同......那么是的,你必须以某种方式将它传递给任何需要它的功能。是否应该创建一次并传递多次 - 或者永远传递并根据需要创建,实际上取决于应用程序的细节。对不起,这里没有普遍的答案。

答案 2 :(得分:0)

对于性能问题,几乎没有区别。将对象作为参数传递将在运行时花费您(非常小的)位。重新创建对象不会(假设编译器优化)。

但是,如果您计划引入某些状态(字段),或者为这些void方法实现两个实现,则应该传递一个对象,因为它会大大降低重构成本。

总结:如果你的课程类似于Math,其中方法本质上是无状态的,请坚持使用@Amit答案并使其保持静态。否则,如果您的类类似于CanvasWindows,并且您想要以后再用它来实现它,那么最好通过引用传递它,这样您就可以用抽象接口替换它并提供实际实现。