本人在 类st1中已经定义了和初始化了int c; c为public
现在需要在类st2中修改类st1中c的值,
如何实现?

解决方案 »

  1.   

    可以这样解释。
    在类st2中修改已经定义的st1类中的参数值。
      

  2.   

    在类st2中定义一个st1的指针,获取st1定义对象的地址,通过指针修改
      

  3.   


    在st2的函数中:
    st1 *pdlg;
    pdlg->c = 10;
    运行出现警告:pdlg没有初始化,
    如何初始化呢?
    st1 *pdlg = ???
      

  4.   

    你还没获取st1定义对象的地址呢,
    st1 m_st1;
    pdlg = &m_st1;
      

  5.   

    st1 i;//st2中定义
    i.c = 赋值。
    ok
      

  6.   


    在st2的函数中:st1 m_st1; 
    st1 *pdlg = &m_st1; 
    pdlg->c = 10; 然后我在st1 下AfxMessageBox,显示的C的值并没有传进去。
    我觉得这个办法在st2的函数结束时,
    m_st1 和 pdlg 就释放了,
    不能保存哦。
      

  7.   


    不是这样哦, 
    这样是给在st2中建立的st1的一个类对象赋值,
    st2调用结束后,对象就释放了,
    完全没有保存在已经分配了空间的st1参数里面。
      

  8.   

    void SetS1Value(st1 *mSt1)
    {
      mSt1->c = ...;
    }st1 nSt1;
    st2 nSt2;nSt2.SetS1Value(&mSt1);