是否可以使结构模仿其中一个元素?例如:
struct example_struct
{
double x[2];
double operator[](int i){return x[i];};
}
struct example_struct var;
现在,假设var.x
以某种方式初始化,std::cout<<var[1];
之类的表达式显然有效,但我应该怎么做才能使var[1]=3;
这样的表达式有效?
答案 0 :(得分:4)
您需要返回引用,而不是副本,以便var[1]=3
能够正常工作。
struct example_struct
{
double x[2];
double& operator[](int i) return x[i];};
}