c – 在一个对象上运行,运算符使用索引重载()
发布时间:2020-12-16 10:06:56 所属栏目:百科 来源:网络整理
导读:我有一个类来表示二维数组,我想使用()运算符,例如, Array arr;arr(2,5) = 17; // I want to assign 17 as element in 2nd row and 5th column. 我试过这样的事情:(但是没有用) void operator(int m,int n)(int num) { int m,n; p[m][n] = num;} 我有一个操作
我有一个类来表示二维数组,我想使用()运算符,例如,
Array arr; arr(2,5) = 17; // I want to assign 17 as element in 2nd row and 5th column. 我试过这样的事情:(但是没有用) void operator(int m,int n)(int num) { int m,n; p[m][n] = num; } 我有一个操作符=(这个工作): void operator=(const Array& other) const { for (int i = 0; i < DIM; i++) { for (int j = 0; j < DIM; j++) { p[i][j] = other.p[i][j]; } } } Array类将T **作为私有成员. 我如何使用overload()运算符来访问数组中的元素 谢谢! 解决方法
你需要建立类似的东西
INT和放大器; operator()(int m,int n) 它返回对数组元素的引用,您可以通过调用站点上的引用进行修改. 不要忘记构建const重载 const int& operator()(int m,int n)const 因此,您可以在调用站点使用类似的语法来访问const对象的元素. 最后,对于你的赋值运算符,你不应该使它成为const(你是否已经使p变为可变?),并且你应该返回对self的引用以帮助复合赋值: Array& operator=(const Array& other){ // Your existing code return *this; } 参考:http://en.cppreference.com/w/cpp/language/copy_assignment (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |