gpt4 book ai didi

c++ - 使用静态成员函数而不是等效的非静态成员函数的优点?

转载 作者:可可西里 更新时间:2023-11-01 18:18:09 24 4
gpt4 key购买 nike

我想知道当存在非静态等效项时使用静态成员函数是否有任何优势。它会导致执行速度更快(因为不必关心所有成员变量),还是会减少内存使用(因为没有包含在所有实例中)?

基本上,我正在查看的函数是一个实用函数,用于将表示像素颜色的整数数组围绕任意中心点旋转任意度数。它被放置在我的抽象 Bullet 基类中,因为只有子弹会使用它并且我不希望在某些实用程序类中调用它的开销。它有点太长并且在每个派生的项目符号类中都有使用,因此内联可能不是一个好主意。你会如何建议我定义这个功能?作为 Bullet 的静态成员函数、Bullet 的非静态成员函数,或者可能不是 Bullet 的成员但在 Bullet.h 的类之外定义?各有什么优缺点?

最佳答案

静态成员函数和自由函数之间绝对没有性能差异。

从设计的角度来看,似乎所讨论的功能与 Bullets 几乎没有关系,所以我更愿意将它放在某个实用程序库中,这样做没有运行时开销,如果您需要额外的开发人员工作还没有这样的图书馆。

关于原始问题,如果该函数显然不属于特定类,那么它应该是一个自由函数。至多,它应该属于一个命名空间,以控制它的范围。即使它属于一个类,大多数时候,我仍然更喜欢自由函数,除非该函数需要访问私有(private)成员。

关于c++ - 使用静态成员函数而不是等效的非静态成员函数的优点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com