-2

有一些 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);
 }

此代码取自 Telepresence 项目,https://code.google.com/p/telepresence/source/browse/trunk/source/OTMixerMgrAudio.cc? r=118 ,第 31 行

谢谢!

4

1 回答 1

5

那不是类成员,它正在调用带有两个参数的基本构造函数

OTMixerMgrAudio::OTMixerMgrAudio(OTObjectWrapper<OTBridgeInfo*> oBridgeInfo)
 :OTMixerMgr(OTMediaType_Audio, oBridgeInfo) // call base constructor

其实看看声明OTMixerMgr的头部

class OTMixerMgr : public OTObject
{
public:
        OTMixerMgr(OTMediaType_t eMediaType, OTObjectWrapper<OTBridgeInfo*> oBridgeInfo);
于 2014-10-15T11:45:55.693 回答