读书人

为什么编译器非得让小弟我为类重载赋值

发布时间: 2012-03-11 18:15:39 作者: rapoo

为什么编译器非得让我为类重载赋值操作符呢

C/C++ code
class CItemGroup{//省略一部分public:    CItemGroup(const CWnd *Parent , CWnd *pGroupFrame );    ~CItemGroup(void);    CItemGroup &operator=(const CItemGroup &rhand);private:    struct ItemPosPercent{ ...... };    typedef std::map<HWND,ItemPosPercent>  GroupPos_MAP;    bool            m_isMaxSize;    const CWnd        *m_pParent; // 根据我的计划,指针不必深拷贝    CWnd            *const m_pGroupFrame;    GroupPos_MAP    m_ItemPos;};


C/C++ code
class C***Dlg : public CDialog{// 省略一部分private:    typedef std::vector<CItemGroup>    ItemGroup;    ItemGroup        m_ItemGroup;};void  C***Dlg::Initialize(){    m_ItemGroup.push_back(CItemGroup(this , GetDlgItem(IDC_VIEWFRAME1))); // 只要有这句就必须要求CItemGroup有operator=//......}


我很好奇为什么默认的operator=就不行能,非得让我重载operator=

望各位指教

[解决办法]
C/C++ code
CWnd            *const m_pGroupFrame; 

读书人网 >C++

热点推荐