【发布时间】:2012-05-05 12:36:02
【问题描述】:
在我的程序中,我有一个网格类(例如myGrid),我可以通过重载operator() 来获得对单元格(一个类)的引用。我的问题是每次我调用这个myGrid(x, y) 它返回一个单元格的引用,我需要声明一个单元格引用。
cell& myCell = myGrid(x,y);
myCell.status = currentStatus;
执行此操作时出现错误:
(myGrid(x,y)).status = currentStatus;
我需要非常频繁地使用单元格中定义的函数。因此,每次我需要声明一个单元格引用,这使得我的代码看起来很紧急。有什么优雅的方法来解决这个问题吗?非常感谢。干杯!
对不起。有一个错字。假设 status 是 cell 中的一个公共变量,并且假设 currentStatus 是一个与 status 类型相同的变量。
Grid 是一个预定义的类,我无权修改它。它返回对单元格的引用。 例如。单元格&运算符()(int x, int y)
抱歉造成混乱。 myGrid(x,y).status 有效。我之前在某个地方犯了一个错误。当我遵守它时,错误发生在这一行。非常感谢!
【问题讨论】:
-
这是一个关于
status()方法的更多问题。它的签名是什么? -
错误是什么,
status()的返回类型和签名是什么? -
错误,根据您提供的信息,您似乎应该让 status() 返回对 currentStatus 类型的引用。但你真的应该提供更多信息,坦率地说,它看起来不像一个好的设计。为什么不让它成为状态(currentStatus)?
标签: c++ class reference compiler-errors