本帖最后由 wasedasai 于 2011-08-04 10:49:17 编辑

解决方案 »

  1.   

    应该不会啊,write等函数和a都是什么关系?
      

  2.   


    Write和Read和makefile和a都是一个B类的。
    但是,要通过C类的check()来调用write
    大致如下。
    class B
    {
       public:
         write();
        read();
        makefile();
        vector <int> A; 
    };
    B::write()
    {read();}
    class C
    {
       public:
         check();
    };
    C::check()
    {
       B b;
       b.write();
       b.makefile();
    }如果要把makefile()放到read()里面就能取到值。
    但是程序不允许那样做。求解。
      

  3.   

    如果仅仅是这样,那是有值的
    就怕调用write和makefile的不是同一个对象
      

  4.   


    read函数其实是这么写的。char ReadDate[]={0x02,0x4D,0x20,0x20,0x31,0x30,0x30,0x31,0x30,0x30,0x0D,0x0A,'\0'};
    int RLength = sizeof(ReadDate);
    int ReceiveLength = 100;
    ReadDate[4]=PlanNo;
    AfxMessageBox("plan2 Readdete start");
    Open(CSerial::PlanNo); for(int i=48; i<58; i++)
    {
    ReadDate[5]=i; for(int j=48; j<58; j++)
    {
    ReadDate[6]=j;

    for(int k=49; k<58;k++)
    {
    ReadDate[7]=k;
    WriteCommByte(ReadDate,RLength);
    ReadDataWaiting();
    ReadData(ReceiveLength);
    } }
    }
      

  5.   


    你这个倒是提醒我了,确实不是同一个对象。
    因为程序比较复杂,其实write是再另一个函数里调用的。if(Check())
    {SaveSelect();
     A rp;
     rp.MakeFile();}B::SaveSelect()
    {
       CSerial save;
       save.write();
    }
    在不同函数里面,怎么解决对象的问题呢。
    我吧rp改成save也不好用。
    还有什么其他的办法可以解决这个问题。
    用static来定义函数吗?
      

  6.   

    在外部定义一个对象
    A rp;就OK可
    if(Check())
    {
        SaveSelect();
        rp.MakeFile();
    }B::SaveSelect()
    {
       rp.save.write();
    }