直接访问结构

时间:2017-10-16 17:46:25

标签: c++ arrays struct overloading

是否可以使结构模仿其中一个元素?例如:

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;这样的表达式有效?

1 个答案:

答案 0 :(得分:4)

您需要返回引用,而不是副本,以便var[1]=3能够正常工作。

struct example_struct
{
   double x[2];
   double& operator[](int i) return x[i];};
}