sphinx 源码学习
1、当Child没有定义拷贝构造函数,当调用Child默认拷贝构造函数时,会先调用Base拷贝构造函数
2、当Child定义有拷贝构造函数,当调用Child拷贝构造函数时,会先调用Base构造函数 (可显示调用Base拷贝构造函数)
下面代码: Base类的拷贝构造函数设置为private或delete,调用Child类会调用Base类的拷贝构造函数?
1、子类默认拷贝构造函数
class CSphMutex
{
public:
CSphMutex(): m_bInitialized(false)
{
printf("[ %s ] [ %d ] [ %s ] \n", __FILE__,__LINE__,__func__);
}
~CSphMutex()
{
assert(!m_bInitialized);
printf("[ %s ] [ %d ] [ %s ] \n", __FILE__,__LINE__,__func__);
}
bool Init();
bool Done();
bool Lock();
bool Unlock();
inline pthread_mutex_t* GetInternalMutex()
{
return &m_mutex;
}
protected:
bool m_bInitialized;
pthread_mutex_t m_mutex;
};
bool CSphMutex::Init()
{
assert( !m_bInitialized );
m_bInitialized = ( pthread_mutex_init ( &m_mutex, NULL)==0 );
return m_bInitialized;
}
bool CSphMutex::Done()
{
if( !m_bInitialized )
return true;
m_bIniti