我正在编写包含几个类的c ++项目。我创建了名为 Position.h 的 .h 文件,其中包含一个数组和一个函数:
class Position
{
public:
Coord positions[25];
public:
void setPos(int index, double x, double y)
{
positions[index].x = x;
positions[index].y = y;
}
};
我想从另一个类设置此数组中的值,因此此项目中的每个类都将看到相同的值。我在其他类中包含"Position.h",但我无法访问"position"数组。
任何人都可以帮我吗??
只需更改语句:
Coord positions[25];
自
static Coord positions[25];
也改变void setPos
自
static void setPos
在访问数组时,访问它为:
Position::positions[any value]
但在访问数组之前,请确保调用函数setPos
positions
是与类实例关联的成员变量,因此不是全局变量。您可以通过使其static
来使其类似于全局。这样做,它将成为类范围的变量,而不是绑定到实例。
您需要在单个实现文件中定义它。
更好的选择是 std::vector<Coord>
.
按照其他人的建议,您可以使成员static
。
您还可以创建 Position
类的实例作为全局变量,并使用它:
Position globalPosition;
void function_using_position()
{
globalPosition.setPos(0, 1, 2);
}
int main()
{
function_using_position();
}
或者使其成为局部变量,并将其作为引用传递:
void function_using_position(Position &position)
{
position.setPos(0, 1, 2);
}
int main()
{
Position localPosition;
function_using_position(localPosition);
}