c++类中的static新发现

来源:互联网 发布:数据库认证哪个含金量 编辑:程序博客网 时间:2024/05/22 03:47
今天在写一个通用框架,要实现一个注册类定义的时候,实现自动全局注册。 一般人们都得通过定义一个实例来完成,这里用了一小技巧,用static 由于static定义的变量是放在全局的内存区,在程序启动的时候就会先回对这块程序初始化,那么就写一个函数,这个函数里面写上注册函数,然后让该函数实现自己的功能,但是用这个函数初始化这个static变量。---------------其实就是一个字 static 会在程序启动前初始化,所以我们可以通过这个初始化来实现自己的初始化函数
map<INT32,TestInfo*> g_mapTestCase;bool MakeRegisterFunc(TestInfo* class_name){   int currentTypeID = 0;TestInfo* t = (TestInfo* )class_name;map< INT32,TestInfo*>::iterator ibeg = g_mapTestCase.begin();//strcat(test_name,test_case_name);//TestInfo *t = new TestInfo();g_mapTestCase.insert(make_pair(currentTypeID,t));   return true;}#define GTEST_TEST(test_case_name,test_name)\class GTEST_TEST_CLASS_NAME(test_case_name,test_name) : public TestInfo\{\public:\GTEST_TEST_CLASS_NAME(test_case_name,test_name)(){};\public:\virtual void TestBody();\/*a beautify butterfly*/static bool funny;\};\GTEST_TEST_CLASS_NAME(test_case_name,test_name)* tinfo =\new GTEST_TEST_CLASS_NAME(test_case_name,test_name);\bool GTEST_TEST_CLASS_NAME(test_case_name, test_name)::funny\= MakeRegisterFunc(tinfo);\


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 珍爱网的客服老打电话怎么办 百合网的人气是怎么办 苹果x来电不显示怎么办 苹果8黑屏没反应怎么办 苹果六s开不了机怎么办 苹果6s突然黑屏怎么办 苹果6s黑屏了怎么办 苹果6s手机黑屏打不开怎么办 苹果6sp手机死机怎么办 苹果6s打不开机怎么办 6s开不了机怎么办 lg背光灯坏了怎么办 苹果6s屏幕变黄怎么办 苹果8背光坏了怎么办 苹果六背光坏了怎么办 苹果5s蓝屏死机怎么办 苹果6s突然黑屏怎么办? 苹果6s经常死机怎么办 苹果6s没有背光怎么办 苹果7白屏死机怎么办 苹果6p屏膜失灵怎么办 苹果7p屏幕卡死怎么办 苹果7p手机死机怎么办 苹果6s死机了怎么办啊 6s死机了关不了怎么办 爱疯7死机了怎么办 苹果11.4系统老死机怎么办 苹果6震动坏了怎么办 苹果6手机死机了怎么办 苹果x耗电太快怎么办 苹果6升级11.3卡怎么办 苹果6splus耗电快怎么办 苹果手机系统升级后反应慢怎么办 苹果8听筒声音小怎么办 苹果6s通话声音小怎么办 苹果手机通讯录丢失了怎么办 苹果换id通讯录没有了怎么办 华为p7 更新重启怎么办 打电话的图标没了怎么办 苹果手机wifi信号弱怎么办 没电脑想装wifi怎么办