模板类继承
template<class TTable, class TGTP>
class CCmQry
{
public:
CCmQry(const char* szField, TGTP* pGTP)
: m_pGTP(pGTP)
{
}
int is_empty(TTable* p)
{
return false;
}
template<class TKey>
void query_table(TKey key)
{
}
public:
char m_szField[64];
TGTP* m_pGTP;
};
template<class TTable, class TGTP, class TSubQry>
class CCmQryParent : public CCmQry<TTable, TGTP>
{
//typedef CCmQry< TTable, TGTP> Base;
public:
CCmQryParent(const char* szField, TGTP* pGTP, TSubQry* pSubQry)
: CCmQry<TTable, TGTP>(szField, pGTP)
, m_pSubQry(pSubQry)
{
}
template<class TKey>
void query_table(TKey key)
{
//Base::m_szField[10] = 0;
m_szField[10] = 0;
}
public:
TSubQry* m_pSubQry;
};
int main()
{
return 0;
}
template<class TTable, class TGTP>
class CCmQry
{
public:
CCmQry(const char* szField, TGTP* pGTP)
: m_pGTP(pGTP)
{
}
int is_empty(TTable* p)
{
return false;
}
template<class TKey>
void query_table(TKey key)
{
}
public:
char m_szField[64];
TGTP* m_pGTP;
};
template<class TTable, class TGTP, class TSubQry>
class CCmQryParent : public CCmQry<TTable, TGTP>
{
typedef CCmQry< TTable, TGTP> Base;
public:
CCmQryParent(const char* szField, TGTP* pGTP, TSubQry* pSubQry)
: CCmQry<TTable, TGTP>(szField, pGTP)
, m_pSubQry(pSubQry)
{
}
template<class TKey>
void query_table(TKey key)
{
Base::m_szField[10] = 0;
//m_szField[10] = 0;
}
public:
TSubQry* m_pSubQry;
};
int main()
{
return 0;
}