获取struct all数组的列表并检测每个数组的名称并打印它

时间:2015-08-24 05:58:12

标签: c++ arrays struct

这是我的程序

struct All_Modules
{
    char* Name;
};

All_Modules First_Array[] = { { "hi\n" } };
All_Modules Next_Array[]  = { { "hi1\n" } };
All_Modules Other_Array[] = { { "hi2\n" } };

int main()
{
}

有没有办法获取All_Modules所有数组名称的列表,如(First_Array,...)并显示这样的打印?

My array is : First_Array | and The of This array is : hi
My array is : Next_Array | and The of This array is : hi1
My array is : Other_Array | and The of This array is : hi2

我知道我们可以设置每个数组来打印这个但我希望第一个系统获取All_Modules中所有数组的列表并检测名称并自动打印Name值...是否可能?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,但你必须自己使用静态成员来实现它。

All_Modules的构造函数中,将新创建的实例附加到全局(静态)列表。

struct All_Modules{
  char* Name;

  All_Modules(){
    gModulesList.push_back(this);
  };

  static void print_all(){
    for(... gModulesList ...){
      // print gModulesList[i]->Name;
    }
  };

private:
  static std::list<All_Modules*> gModulesList;  
};

答案 1 :(得分:0)

为了做到这一点,你必须枚举某些类型的全局变量,但是C ++并没有为它提供一种方法(它被称为内省,BTW)。虽然可能有一些特定于编译器的方法来获取该信息,但它们不会是可移植的。