分类: C/C++
2010-12-02 15:28:53
#define LTEST_H
#include
#include
using namespace std;
class LTest
{
public:
LTest();
public:
int HelloWorld(int v) // v means value
{
cout << "IN helloWorld! a= " << v << endl;
return 1;
}
public:
typedef int (LTest::*pFunc)(int v);
QMap<int, pFunc > m_key2FunPtr;
};
#endif // LTEST_H
// ================ cpp file ==============
#include "ltest.h"
LTest::LTest()
{
m_Func.insert(5, <est::HelloWorld);
}
#include "ltest.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
LTest test;
// ! 直接通过key 调用函数, 激动吧。
(test.*(test.m_Func[5]))(6); // ! 新手如果看不懂这句,可以分两边来,见下面的方法.
// ! ==== 这三句是写给新手看的,免得一下转不过弯。 和上面一句是同样的意思
typedef int (LTest::*fp)(int);
fp p = test.m_Func[5];;
(test.*p)(1000);
//===============================
return a.exec();
}
chinaunix网友2010-12-05 15:12:35
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com