class CObjDSController  : public CObject
{
public:
     CObjDSSource  m_SourceDB;
}class CDlgSelectSourceData : public CDialog
{
public:
   CObjDSSource  *m_pCObjDSSource;
}
CObjDSController *pCObjDSController;CDlgSelectSourceData dlgSource;
pCObjDSController->m_SourceDB=dlgSource.m_pCObjDSSource;编译
pCObjDSController->m_SourceDB=dlgSource.m_pCObjDSSource;
CObjDSSource' : 'operator =' function is unavailable
两指针赋值,pCObjDSController为一对象指针,m_SourceDB为该对象成员变量(为一类的实例)
m_pCObjDSSource为类CDlgSelectSourceData 的成员指针变量,
两个变量指针如何不能赋值???????

解决方案 »

  1.   

    当然错了
    pCObjDSController->m_SourceDB=dlgSource.m_pCObjDSSource;//两个类型不一样
    一个是指针,一个是变量
    pCObjDSController->m_SourceDB=*dlgSource.m_pCObjDSSource;//试试这个
      

  2.   

    楼上说得对,
    调试的时候,改来改去,
    pCObjDSController->m_SourceDB=*dlgSource.m_pCObjDSSource;
    pCObjDSController->m_SourceDB=(CObjDSSource *)dlgSource.m_pCObjDSSource;
    都错
      

  3.   

    楼上说得对,
    调试的时候,改来改去,都改糊涂了
    pCObjDSController->m_SourceDB=*dlgSource.m_pCObjDSSource;
    pCObjDSController->m_SourceDB=(CObjDSSource *)dlgSource.m_pCObjDSSource;
    都错
      

  4.   

    CObjDSSource有没有重载“=”操作符?
      

  5.   

    CObjDSSource 
    重载一下“=”在一个进程之内只要不牵扯到系统隐私数据指针是为所欲为的
      

  6.   

    dlgSource.m_pCObjDSSource所指向的对象赋值没有?
      

  7.   

    问题解决了需要重新载=CObjDSSource & CObjDSSource::operator =(CObjDSSource &m)
    {
     return m;
    }