Возможный дубликат:
Как передать объекты в функции на С++?
В моей игре я делаю чрезмерное использование математических векторов и перегрузку их операторов.
class Vector
{
float x, y;
};
В основном это касается моего класса Vector (методы исключены).
Теперь я не являюсь экспертом в С++, и я видел и читал о передаче как const и передаче по ссылке.
Итак, где различия производительности в приведенном ниже примере кода?
Float RandomCalcuation( Vector a, Vector b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
// versus..
Float RandomCalcuation( Vector& a, Vector& b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
// versus..
Float RandomCalcuation( const Vector& a, const Vector& b )
{
return a.x * b.x / b.x - a.x * RANDOM_CONSTANT;
}
- Какую из трех я должен использовать и почему?
-
Какие преимущества для процесса оптимизации компилятора имеют каждый из параметров?
-
Когда и где я должен быть особенно осторожен?