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
- c++类中的static新发现
- WORD中的新发现
- 项目运行中的新发现
- java中的List新发现
- C++--类模板中的static关键字
- C语言中的static
- C/C++中的static
- c 语言中的static
- C语言中的Static
- C/C++中的Static
- C语言中的static
- C语言中的static
- C中的static、extern、#、##
- C/C++中的static
- c语言中的static
- C中的Static
- C/C++中的static
- c语言中的static
- 关于堆栈的详解
- JavaScript(8)数组对象
- qq在线状态客户代码与图标
- Oracle 共享池的调整与优化(Shared pool Tuning)
- 采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序(多activity)
- c++类中的static新发现
- [python]json
- -bash: id: command not found -bash: tty: command not found
- android学习日记-3 Apache的HttpClient
- [python]django
- MFC richedit多行显示
- 帮你理解多线程
- 网线直接插电脑能上网 接路由器就连不上了
- 跳河的兔子