gpt4 book ai didi

c++ - 我怎样才能建立这种类型的类接口(interface)

转载 作者:行者123 更新时间:2023-11-30 04:18:14 27 4
gpt4 key购买 nike

我有兴趣尝试创建自定义类型,然后使用点语义访问其成员。例如:

 Class A{ //simplified, omitting constructors and other methods
private:
float numbers[3];
public:
float x(){ return numbers[0]; }
float y(){ return numbers[1]; }
float z(){ return numbers[2]; }
}

所以我可以这样做:

  A a;
//do stuff to populate `numbers`

float x=a.x;

但我也想使 numbers 中的元素成为左值,这样我就可以做这样的事情:

  A a;
a.y=5; //assigns 5 to numbers[1]

这个设置方法要怎么操作?

最佳答案

您可以返回一个引用以允许赋值:

float & x(){ return numbers[0]; }
^

// usage
A a;
a.x() = 42;

您还应该有一个 const 重载,以允许对 const 对象进行只读访问:

float x() const {return numbers[0];}
^^^^^

// usage
A const a = something();
float x = a.x();

关于c++ - 我怎样才能建立这种类型的类接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16540052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com