Ole*_*ets -2 c++ initialization-list
有一些C++代码.我想知道为什么在初始化列表(:OTMixerMgr(OTMediaType_Audio, oBridgeInfo))中可以将两个值用于单个类成员?因为通常只有一个值用于单个类成员,例如
ClassName::ClassName(): fisrtMember(firstValue) {...}.
OTMixerMgrAudio::OTMixerMgrAudio(OTObjectWrapper<OTBridgeInfo*> oBridgeInfo)
:OTMixerMgr(OTMediaType_Audio, oBridgeInfo)
{
m_phPullThread[0] = NULL;
m_phPullCond = NULL;
m_nLastTimerPull = 0;
m_bStarted = false;
m_bPaused = false;
OT_ASSERT(m_phProducersMutex = tsk_mutex_create());
OT_ASSERT(m_phConsumersMutex = tsk_mutex_create());
m_oMixerAudio = OTMixerAudio::New(oBridgeInfo);
m_bValid = (m_phConsumersMutex && m_oMixerAudio);
}
Run Code Online (Sandbox Code Playgroud)
此代码取自远程呈现项目,https://code.google.com/p/telepresence/source/browse/trunk/source/OTMixerMgrAudio.cc? r = 118,第31行
谢谢!
这不是一个类成员,它调用一个带有两个参数的基础构造函数
OTMixerMgrAudio::OTMixerMgrAudio(OTObjectWrapper<OTBridgeInfo*> oBridgeInfo)
:OTMixerMgr(OTMediaType_Audio, oBridgeInfo) // call base constructor
Run Code Online (Sandbox Code Playgroud)
实际上,看一下声明OTMixerMgr的标题
class OTMixerMgr : public OTObject
{
public:
OTMixerMgr(OTMediaType_t eMediaType, OTObjectWrapper<OTBridgeInfo*> oBridgeInfo);
Run Code Online (Sandbox Code Playgroud)