- 论坛徽章:
- 0
|
本帖最后由 chllcy88 于 2013-10-09 11:23 编辑
- 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;
- }
- public:
- TSubQry* m_pSubQry;
- };
- int main()
- {
- return 0;
- }
复制代码 第一段代码编译报错
test.cpp: In member function 'void CCmQryParent<TTable, TGTP, TSubQry>::query_table(TKey)':
test.cpp:42: error: 'm_szField' was not declared in this scope
第二段代码就可以,不知道是为什么?
既然已经是public继承了,那就应该可以直接使用啊?请指点下 |
|