利用虚函数实现成员对象对父对象的回调:
#include <iostream>
class NetListen
{
public:
virtual void OnReceiver(int data) =0;
};
class NetClient
{
public:
NetClient(){};
~NetClient(){};
void Init(NetListen* listener){
m_listener = listener;
};
void Recv(){
m_listener->OnReceiver(123);
};
private:
NetListen* m_listener;
};
class NetAdapter:public NetListen
{
public:
NetAdapter(){};
~NetAdapter(){};
void Init(){
m_client = new NetClient();
m_client->Init(this);
};
virtual void OnReceiver(int data){
std::cout << data << std::endl;
};
private:
NetClient* m_client;
};
int main()
{
NetAdapter* adpater = new NetAdapter();
adpater->Init();
return 0;
}
以上