Я пытаюсь узнать о линейной алгебре через книгу, и автор оставляет блок кода для базовой структуры для Vector3D. Я понимаю все, кроме двух блоков с float & operator и const float & operator. Возможно ли, если бы я мог получить подробное объяснение кода здесь?
Я попытался использовать операторы Google, что заставляет эти два блока кода казаться, что происходит какое-то неявное преобразование, ноЯ все еще в растерянности за все остальное.
#include <iostream>
using namespace std;
//Math Engine
struct Vector3D
{
float x, y, z;
Vector3D(float X, float Y, float Z)
{
x = X;
y = Y;
z = Z;
}
Vector3D() = default;
float& operator [](int i)
{
return ((&x)[i]);
}
const float& operator [](int i) const
{
return ((&x)[i]);
}
};
int main()
{
return 0;
}