我们如何使用静态变量维护用于存储数据的共享数组?数组中应为每个类保留区域。我们应该能够从所有类访问数组以存储和检索数据。

最佳答案

听起来您想要的是一个全局变量-就像注释中提到的那样,通常是一个坏主意,因为当每个类都对同一共享数据进行读写访问时,就很难进行推理了。程序的行为(因为很难跟踪代码库的哪些部分可能正在修改或取决于共享数据,或者在访问它时不同部分之间将如何交互)。

就是说,如果您确实想这样做(并且对于非常小/简单的程序来说可以正常工作,仅因为几乎可以使任何方法对于非常小/简单的程序都可以正常工作),您可以执行以下操作:

// in my_shared_data.h (or some other header file than anyone can #include)
struct MyGloballySharedData
{
   int myArray[100];
   char myString[100];
   // ... and whatever the data you care to add here
};

// tell all the #include-ers that (mySharedDataObject) exists, somewhere
extern MyGloballySharedData mySharedDataObject;


// in my_shared_data.cpp (or some other .cpp file, it doesn't matter which one)
MyGloballySharedData mySharedDataObject;

请注意,您不想将mySharedDataObject声明为静态,因为这将使它只能由存储mySharedDataObject全局变量的同一.cpp文件中的代码访问,这将使其无法全局使用。

10-04 14:41