以此为例:
我有20个结构。我直接访问所有struct的字段,从中获取值,指向它们可能具有的其他子结构等等。
现在,我重组了该计划: 我没有直接访问结构域的字段,而是将所有结构封装到它们各自的类中,并为所有可能的get()和set(x)提供了函数。
问题:使用方法/功能是否会影响性能,而不是直接使用结构?
某种估计的百分比会很好,或者有些解释。
答案 0 :(得分:3)
通常,如果在类中内联定义getter和setter,则不应存在性能差异。对于几乎任何现代编译器,函数调用将内联扩展,不会产生任何开销。对于各种小型内联函数,这通常是正确的。 (例如,参见http://www.gotw.ca/publications/mill18.htm,其中Herb Sutter讨论了为什么使大多数/所有虚函数nonpublic都不会给结果代码增加任何开销。)
请注意,如果您在类中内联定义函数,则在定义发生更改时,需要重新编译任何客户端代码。但这适用于头文件中的大多数/所有更改。
答案 1 :(得分:-1)
我没有听说过结构和类之间的性能差异,所以这是你的电话。 我在Google下面搜索了这些页面,他们说在性能方面应该没有区别。 http://www.gamedev.net/topic/115725-is-a-struct-faster-than-a-class/ http://forums.codeguru.com/showthread.php?332571-Struct-vs-Class