#include<iostream>
using namespace std;
class WebRTCVoiceEngine
{
public:
WebRTCVoiceEngine()
{
cout<<"WebRTCVoiceEngine"<<endl;
}
};
class WebRTCVideoEngine
{
public:
WebRTCVideoEngine()
{
cout<<"WebRTCVideoEngine"<<endl;
}
};
class MediaEngineInterface
{
};
template<class VOICE, class VIDEO>
class CompositeMediaEngine:public MediaEngineInterface
{
public:
CompositeMediaEngine()
{
cout<<"CompositeMediaEngine"<<endl;
}
protected:
VOICE voice_;
VIDEO video_;
};
int main()
{
MediaEngineInterface* media_engine_ = new CompositeMediaEngine<WebRTCVoiceEngine, WebRTCVideoEngine>();
}
using namespace std;
class WebRTCVoiceEngine
{
public:
WebRTCVoiceEngine()
{
cout<<"WebRTCVoiceEngine"<<endl;
}
};
class WebRTCVideoEngine
{
public:
WebRTCVideoEngine()
{
cout<<"WebRTCVideoEngine"<<endl;
}
};
class MediaEngineInterface
{
};
template<class VOICE, class VIDEO>
class CompositeMediaEngine:public MediaEngineInterface
{
public:
CompositeMediaEngine()
{
cout<<"CompositeMediaEngine"<<endl;
}
protected:
VOICE voice_;
VIDEO video_;
};
int main()
{
MediaEngineInterface* media_engine_ = new CompositeMediaEngine<WebRTCVoiceEngine, WebRTCVideoEngine>();
}