C++ 需要帮助理解这个基本的Vector3D结构';s代码

C++ 需要帮助理解这个基本的Vector3D结构';s代码,c++,math,vector,3d,linear-algebra,C++,Math,Vector,3d,Linear Algebra,我试图通过一本书来学习线性代数,作者为Vector3D的基本结构留下了一个代码块。除了两个带float&操作符和const float&操作符的块之外,我什么都懂。如果我能在这里得到对代码的深入解释,有可能吗 我尝试用谷歌搜索运算符的用法,这使这两段代码看起来像是在进行某种隐式转换,但我仍然对其他一切一无所知 #include <iostream> using namespace std; //Math Engine struct Vector3D { float x,

我试图通过一本书来学习线性代数,作者为Vector3D的基本结构留下了一个代码块。除了两个带float&操作符和const float&操作符的块之外,我什么都懂。如果我能在这里得到对代码的深入解释,有可能吗

我尝试用谷歌搜索运算符的用法,这使这两段代码看起来像是在进行某种隐式转换,但我仍然对其他一切一无所知

#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;
}
#包括
使用名称空间std;
//数学引擎
结构向量3D
{
浮动x,y,z;
矢量3D(浮动X、浮动Y、浮动Z)
{
x=x;
y=y;
z=z;
}
Vector3D()=默认值;
浮点和运算符[](int i)
{
回报((&x)[i];
}
常量浮点和运算符[](int i)常量
{
回报((&x)[i];
}
};
int main()
{
返回0;
}
你到底不明白什么?你从C++学习C++吗?目前,似乎那些
操作符[]
s为任何
i!=0
。请参阅并查看
模板类\u vec2
其处理前面评论中描述的问题的方法。。。