c++ - 提示錯誤:不存在從int轉(zhuǎn)換到CMapPtrToPtr的適當(dāng)構(gòu)造函數(shù)
問題描述
#include 'StdAfx.h'#include 'CoolControlsManager.h'// If you don’t want to see extra TRACE diagnostics,// modify the line below to: #define CCM_TRACE#define CCM_TRACE TRACE#define CCM_TIMER_VAL 100// 100 ms timer period seems to be good enough...#define MAX_CLASSNAME 64 // Length of buffer for retrieving the class name////////////////////////////////////////////////////////////////////////// CCMControl static members initializationHWND CCoolControlsManager::CCMControl::m_hWndOld = NULL;CMapPtrToPtr CCoolControlsManager::m_ctrlMap = 10;CMapPtrToPtr CCoolControlsManager::m_dlgMap = 10;BOOL CCoolControlsManager::m_bEnabled = true;// Changed 02.03.1999 Mike WalterCMapWordToPtr CCoolControlsManager::m_threadMap = 10; ///////////////////////////////////////////////////////////////////////// Here is the one and only CCoolControlsManager objectstatic CCoolControlsManager g_ctrlManager;CCoolControlsManager& GetCtrlManager(){ return g_ctrlManager;}//CMapPtrToPtr 的定義class CMapPtrToPtr : public CObject{ DECLARE_DYNAMIC(CMapPtrToPtr)protected: // Association struct CAssoc {CAssoc* pNext;void* key;void* value; };public:// Construction //explicitCMapPtrToPtr(INT_PTR nBlockSize = 10);// Attributes // number of elements INT_PTR GetCount() const; INT_PTR GetSize() const; BOOL IsEmpty() const; // Lookup BOOL Lookup(void* key, void*& rValue) const;// Operations // Lookup and add if not there void*& operator[](void* key); // add a new (key, value) pair void SetAt(void* key, void* newValue); // removing existing (key, ?) pair BOOL RemoveKey(void* key); void RemoveAll(); // iterating all (key, value) pairs POSITION GetStartPosition() const; void GetNextAssoc(POSITION& rNextPosition, void*& rKey, void*& rValue) const; // advanced features for derived classes UINT GetHashTableSize() const; void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE);// Overridables: special non-virtual (see map implementation for details) // Routine used to user-provided hash keys UINT HashKey(void* key) const;// Implementationprotected: CAssoc** m_pHashTable; UINT m_nHashTableSize; INT_PTR m_nCount; CAssoc* m_pFreeList; struct CPlex* m_pBlocks; INT_PTR m_nBlockSize; CAssoc* NewAssoc(); void FreeAssoc(CAssoc*); CAssoc* GetAssocAt(void*, UINT&, UINT&) const;public: ~CMapPtrToPtr();#ifdef _DEBUG void Dump(CDumpContext&) const; void AssertValid() const;#endif void* GetValueAt(void* key) const;protected: // local typedefs for CTypedPtrMap class template typedef void* BASE_KEY; typedef void* BASE_ARG_KEY; typedef void* BASE_VALUE; typedef void* BASE_ARG_VALUE;};//CMapWordToPtr的定義class CMapWordToPtr : public CObject{ DECLARE_DYNAMIC(CMapWordToPtr)protected: // Association struct CAssoc {CAssoc* pNext;void* value;WORD key; };public:// Construction //explicitCMapWordToPtr(INT_PTR nBlockSize = 10);// Attributes // number of elements INT_PTR GetCount() const; INT_PTR GetSize() const; BOOL IsEmpty() const; // Lookup BOOL Lookup(WORD key, void*& rValue) const;// Operations // Lookup and add if not there void*& operator[](WORD key); // add a new (key, value) pair void SetAt(WORD key, void* newValue); // removing existing (key, ?) pair BOOL RemoveKey(WORD key); void RemoveAll(); // iterating all (key, value) pairs POSITION GetStartPosition() const; void GetNextAssoc(POSITION& rNextPosition, WORD& rKey, void*& rValue) const; // advanced features for derived classes UINT GetHashTableSize() const; void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE);// Overridables: special non-virtual (see map implementation for details) // Routine used to user-provided hash keys UINT HashKey(WORD key) const;// Implementationprotected: CAssoc** m_pHashTable; UINT m_nHashTableSize; INT_PTR m_nCount; CAssoc* m_pFreeList; struct CPlex* m_pBlocks; INT_PTR m_nBlockSize; CAssoc* NewAssoc(); void FreeAssoc(CAssoc*); CAssoc* GetAssocAt(WORD, UINT&, UINT&) const;public: ~CMapWordToPtr();#ifdef _DEBUG void Dump(CDumpContext&) const; void AssertValid() const;#endifprotected: // local typedefs for CTypedPtrMap class template typedef WORD BASE_KEY; typedef WORD BASE_ARG_KEY; typedef void* BASE_VALUE; typedef void* BASE_ARG_VALUE;};
錯誤提示:
嘗試過在定義中將explicit注釋掉,但是在保存的時候提示要訪問的路徑被拒絕,保存不了,請問還有其他的解決方法么
問題解答
回答1:請查看CMapPtrToPtr的定義.CMapPtrToPtr CCoolControlsManager::m_ctrlMap = XXXXX;這一行是讓你給CCoolControlsManager::m_ctrlMap這個(靜態(tài))變量賦值,m_ctrlMap是CMapPtrToPtr類型的,就只能用同樣是CMapPtrToPtr類型的數(shù)據(jù)來賦值.比如,可以寫為CCoolControlsManager::m_ctrlMap = CMapPtrToPtr();//假設(shè)CMapPtrToPtr有默認(rèn)構(gòu)造函數(shù).總之,CMapPtrToPtr的定義的地方,一般也會提示應(yīng)該怎么創(chuàng)建它的實例.請查閱一下
相關(guān)文章:
1. [前端求職必看]前端開發(fā)面試題與答案精選_擴(kuò)展問題2. javascript - 在top.jsp點擊退出按鈕后,right.jsp進(jìn)行頁面跳轉(zhuǎn),跳轉(zhuǎn)到login.jsp3. javascript - 下面的這段算法代碼求解釋4. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?5. css3 - 在sublime text里, 如何讓emmet生成的帶前綴css屬性垂直對齊?6. javascript - js 有什么優(yōu)雅的辦法實現(xiàn)在同時打開的兩個標(biāo)簽頁間相互通信?7. java - spring-data Jpa 不需要執(zhí)行save 語句,Set字段就可以自動執(zhí)行保存的方法?求解8. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點9. javascript - angular中如何創(chuàng)建一個能被不同模塊中組件都能訪問其屬性和方法的對象10. 想找個php大神仿個網(wǎng)站。
