delegatetest.cpp

来自「这是本人在工作中积累的VC++类库」· C++ 代码 · 共 77 行

CPP
77
字号
// delegateTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>

#include <Delegate.h>

using namespace moxu;
using namespace std;

class Sdk
{
private:
	Delegate2<void, int, string>* m_event;

public:
	Sdk()
	{
		m_event = NULL;
	}
	~Sdk()
	{
		if(m_event != NULL)
			delete m_event;
	}
	void SetEvent(Delegate2<void, int, string>* event)
	{
		m_event = event;
	}

	bool Open()
	{
		//do something
		(*m_event)(10, "Opened");
		return true;
	}
};


class Client
{
private:
	Sdk m_sdk;

public:
	Client()
	{
		m_sdk.SetEvent(MakeDelegate(this, OnOpen));
	}
	bool Open()
	{
		return m_sdk.Open();
	}

private:
	void OnOpen(int a, string msg)
	{
		cout<<"Open Event: a="<<a<<" msg="<<msg<<endl;
	};
};




int main()
{
	Client c;
	c.Open();

	getch();
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?