小编Yuk*_*kon的帖子

作为常量和参考传递 - 值得吗?

可能重复:
如何将对象传递给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)
  • 我应该使用三个中的哪一个,为什么?
  • 每个选项对编译器的优化过程有什么好处?

  • 我何时何地都要特别小心?

c++

36
推荐指数
3
解决办法
5万
查看次数

C++:类方法前面的"const"

以此方法声明为例:

const Vector Vector::operator - ( const Vector& other ) const;
Run Code Online (Sandbox Code Playgroud)

我知道第二个const使Vector作为参数传递为immutable,并且最后一个const声明该方法不会更改Vector类的当前实例....

  • 但是第一个const意味着什么或者导致什么呢?

c++

4
推荐指数
1
解决办法
1339
查看次数

标签 统计

c++ ×2