#include <map>
#include <string>
#include <iostream>
class A
{
//内部类用于初始化method_access_flags。
private:
class Init
{
private:
Init();
static Init i;
};
public:
//需要初始化的静态数据成员
static std::map<unsigned short, std::string> o;
};
//这里必须先定义o
std::map<unsigned short, std::string> A::o;
//这里的定义是必须的,用于调用初始化
A::Init A::Init::i;
A::Init::Init()
{
typedef std::pair<unsigned short, std::string> element;
A::o.insert( element(0x0001, std::string("ACC_PUBLIC")) );
A::o.insert( element(0x0002, std::string("ACC_PRIVATE")) );
A::o.insert( element(0x0004, std::string("ACC_PROTECTED")) );
A::o.insert( element(0x0008, std::string("ACC_STATIC")) );
A::o.insert( element(0x0010, std::string("ACC_FINAL")) );
A::o.insert( element(0x0020, std::string("ACC_SYNCHRONIZED")) );
A::o.insert( element(0x0100, std::string("ACC_NATIVE")) );
A::o.insert( element(0x0400, std::string("ACC_ABSTRACT")) );
A::o.insert( element(0x0800, std::string("ACC_STRICT")) );
// ....
}