小编Иль*_*йда的帖子

变量地址的运算符[]如何工作?

例如:

int x = 5;
std::cout<<(&x)[0]<<std::endl; -> prints 5
Run Code Online (Sandbox Code Playgroud)

我在一本书中发现了3DVector的这种表示形式:

struct Vector3D{
float x,y,z;
Vector3D() = default;
Vector3D(float a, float b, float c) : x(a), y(b), z(c) {}
float & operator[](int i){
return ((&x)[i]);
}
};
Run Code Online (Sandbox Code Playgroud)

并将其用作:

    Vector3D myVec(0,2,3);
    std::cout<<myVec[0]<<std::endl;
    std::cout<<myVec[1]<<std::endl;
    std::cout<<myVec[2]<<std::endl;
Run Code Online (Sandbox Code Playgroud)

它将打印x,y,z的值

怎么运行的?这安全吗?

c++ overloading operator-keyword

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

标签 统计

c++ ×1

operator-keyword ×1

overloading ×1