Нужна помощь в понимании кода этой базовой структуры Vector3D - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь узнать о линейной алгебре через книгу, и автор оставляет блок кода для базовой структуры для 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;
}
...