c++使代码全局可访问

c++ making coord globally accessible

本文关键字:访问 全局 代码 c++      更新时间:2023-10-16

只是一个非常简单的问题,我觉得这可能是一个基本的问题,但我就是不知道如何使它工作。我在

中声明了两个坐标点:
int X = (0);
int Y = (0);
COORD coord;
coord.X = X;
coord.Y = Y;

它们在main之前声明,因为它们需要全局访问我的程序中的其他函数,但是当我试图设置coordinate . x/Y时,我得到错误消息,说声明没有存储类型。我能做些什么来解决这个问题?

int X = (0);
int Y = (0);
COORD coord;

这些是全局变量的定义,以及前两个变量的一些文字值的初始化。

coord.X = X;
coord.Y = Y;

这些是语句

你不能在任何函数之外有语句,它们需要放在某个函数中,例如main

但是要初始化COORD类实例的成员字段,通常使用该类的构造函数:

struct COORD {
  int x;
  int y;
  COORD(int x, int y)
   : x(x), y(y) {
  }
};
COORD p = COORD (21, 42);

但是在这种情况下,你甚至根本不需要构造函数,你可以使用结构初始化:

struct COORD {
  int x;
  int y;
};
COORD q = {42, 21};
COORD p{21, 42}; // universal construction

但是,最后,我非常怀疑您是否真的需要一个全局变量。你应该检查一下你的整体设计。(尽管上述所有内容与是否使用它初始化全局变量、局部变量或成员变量无关)