急!求助!vector保存的值的作用范围 本帖最后由 wasedasai 于 2011-08-04 10:49:17 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该不会啊,write等函数和a都是什么关系? 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()里面就能取到值。但是程序不允许那样做。求解。 如果仅仅是这样,那是有值的就怕调用write和makefile的不是同一个对象 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); } } } 你这个倒是提醒我了,确实不是同一个对象。因为程序比较复杂,其实write是再另一个函数里调用的。if(Check()){SaveSelect(); A rp; rp.MakeFile();}B::SaveSelect(){ CSerial save; save.write();}在不同函数里面,怎么解决对象的问题呢。我吧rp改成save也不好用。还有什么其他的办法可以解决这个问题。用static来定义函数吗? 在外部定义一个对象A rp;就OK可if(Check()){ SaveSelect(); rp.MakeFile();}B::SaveSelect(){ rp.save.write();} 用怎样定义一个点和一个面呢? 菜鸟级别问题,帮帮忙哈! 关于基于对话框的属性页表的问题。我是新手,急,在线等! 打印问题 如何做一个象WORD那种可以动态嵌入的程序? 如何设置CEditView为只读? VC新手上路~~请指点一二,送分100 询问关于进程方面的知识 MFC嵌入VLC播放时界面刷新问题 指针在链表中到底应该怎样理解??? 在线等:网络编程碰到的奇怪问题,能够连接但无法收发数据。 VC显示数据列表问题
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()里面就能取到值。
但是程序不允许那样做。求解。
就怕调用write和makefile的不是同一个对象
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);
} }
}
你这个倒是提醒我了,确实不是同一个对象。
因为程序比较复杂,其实write是再另一个函数里调用的。if(Check())
{SaveSelect();
A rp;
rp.MakeFile();}B::SaveSelect()
{
CSerial save;
save.write();
}
在不同函数里面,怎么解决对象的问题呢。
我吧rp改成save也不好用。
还有什么其他的办法可以解决这个问题。
用static来定义函数吗?
A rp;就OK可
if(Check())
{
SaveSelect();
rp.MakeFile();
}B::SaveSelect()
{
rp.save.write();
}