我们使用原始类型而不考虑构造函数和析构函数。也许正因为如此,它们中的大多数都存储在堆栈中。对于基本类型,我们也使用struct
之类的float3
。我们也可以为课程做同样的事情。在函数的开头,创建一个新实例,使用它并在函数末尾释放内存。
如果我们在类级别声明了一个实例变量,那么该变量将一直存在,直到释放包含它的类为止,而不是使用局部变量。这增加了稳定的内存使用量。此外,应该有一些转发到此实例的更新方法。例如,更改容器大小可能会影响内容,因此应将新大小转发给它们。
如何保持对变量的引用以避免多次创建变量?
我知道它与它的构造函数(或析构函数)被调用的次数有关,但我正在寻找一个通用的解决方案。例如,如果类只包含x,y,z这样的基元,并且它们是不可变的,那么你应该总是构造它们等。
决定选择哪种方式的方法,使float3
不可变或使其x,y和z可修改。
答案 0 :(得分:1)
通常,您希望最小化变量的范围以提高性能。另外,在Java中,总是更喜欢基元到它们的包装类等价物。
答案 1 :(得分:1)
如果使用原始类型,则可能没有区别。
如果您使用某些更“复杂”类型的对象,则可能必须在重新使用之前将其重置为已知状态。这可能至少需要与创建新对象一样多的代码。它也使您的代码复杂化,这绝不是一个优势。
除非您发现代码中存在特定的瓶颈,否则您应该尽量保持简单易读。在你绝对不得不这样做之前不要复杂化。