C++工作笔记-简单工厂模式基础(用静态类传入函数指针,再进行调用)(仿大佬代码)

代码如下:

#include <iostream>
using namespace std;

typedef void(*LPFUNCTION)(int data);
void registerConfigParser(LPFUNCTION lpfn){
	lpfn(10);
}

class MyClass{
public:
	MyClass(LPFUNCTION lpfn){
		registerConfigParser(lpfn);
	}
};

#define  STATIC_MY_CLASS(fn) \
	static MyClass myclass(fn)


static void printData(int data){
	cout << "printData callled! the Data is:" << data << endl;
}

STATIC_MY_CLASS(printData);

void main(){
	cout << "Main function called!\n";
	system("pause");
}

运行截图如下:

程序的逻辑:

全局静态类STATIC_MY_CLASS(printData)

其实转化为:

MyClass myclass(printData)

这里是因为用了

#define。这里要注意"\"这个符号,连接符号(大佬们都喜欢用这个)

在MyClass的构造函数中调用了

registerConfigParser函数,他里面有个参数lpfn,类型为函数指针LPFUNCTION

给他传入int型的值,如lpfn(10)。

就可以进行调用了。

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/81067420
今日推荐