gpt4 book ai didi

myClass(x,y,z) = value 的 C++ 运算符重载

转载 作者:行者123 更新时间:2023-11-28 02:43:44 24 4
gpt4 key购买 nike

在 C++ 中,我应该如何重载函数调用运算符,以便我的类的实例可以接受这样的表达式:myClass(x,y,z) = value

我有一个模板类 Array3D,它用作一维数组的包装器。我想在此数组中的某个索引处设置一个特定值。到现在为止,我曾经使用像这样的常规函数​​来完成它:
array.setValueAt(int x, int y, int z, int value)
但现在我想重载函数调用运算符并改用它。所以像这样的事情:array(x, y, z) = 值

最佳答案

你想要函数调用运算符,operator():

struct Foo
{
int & operator()(int, int, int) { return x; }
int x;
};

您应该让它返回一个左值(或其他重载赋值的东西)以使您的赋值示例起作用。

用法:

Foo a;
a(1, 2, 3) = 10;

assert(a.x == 10);

关于myClass(x,y,z) = value 的 C++ 运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080818/

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