好的,所以这就是我的困境:假设我们有一个类,还有几个构造函数,它们将被称为无数次(每秒几亿次;所以速度至关重要< /强>)。
哪种方式更可取? (有什么不同吗?)
方式A:
// Prototype
class MyClass
{
public:
// Constructor
MyClass (int x, int y, int z) : X(x), Y(y), Z(z) {}
// Variables
int X,Y,Z;
};
方式B:
// Prototype
class MyClass
{
public:
// Constructor
MyClass (int x, int y, int z);
// Variables
int X,Y,Z;
};
// Implementation
MyClass::MyClass(int x,int y,int z)
{
this->X=x;
this->Y=y;
this->Z=z;
}
答案 0 :(得分:3)
您需要使用个人资料工具自行衡量。使用内置类型可能没有区别(关于构造速度),但对于类类型,使用成员初始化列表总是更好的方式。
答案 1 :(得分:0)
一个唐纳德克努特的明智话语:
以最易读和可维护的风格编写代码;我个人的偏好是单独在标题之外进行实现。如果它足够小以内联,编译器将内联它;如果编译器确定它足够大而不能内联(减少代码大小并保存指令缓存空间等),那么编译器就不会内联它。
然后基于真实经验数据进行基准测试和优化。