可能重复:
如何将对象传递给C++中的函数?
在我的游戏中,我过度使用了数学向量和运算符重载.
class Vector
{
float x, y;
};
Run Code Online (Sandbox Code Playgroud)
这基本上都是关于我的Vector类(排除的方法).
我不是C++的专家,我已经看过并阅读过传递为const并通过引用传递.
那么,下面的代码示例中的性能差异在哪里?
Float RandomCalculation( Vector a, Vector b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
// versus..
Float RandomCalculation( Vector& a, Vector& b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
// versus..
Float RandomCalculation( const Vector& a, const Vector& b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
Run Code Online (Sandbox Code Playgroud)
每个选项对编译器的优化过程有什么好处?
我何时何地都要特别小心?
以此方法声明为例:
const Vector Vector::operator - ( const Vector& other ) const;
Run Code Online (Sandbox Code Playgroud)
我知道第二个const使Vector作为参数传递为immutable,并且最后一个const声明该方法不会更改Vector类的当前实例....
const意味着什么或者导致什么呢?c++ ×2