18,356
社区成员
发帖
与我相关
我的任务
分享
class B : public C
{
public:
CTest a;
}
B::B(): a(this)
{
}
class A: public B{
}
A::A() : B(){
a->fun();
}
class F:public B{
}
F::F() : B()
{
a->fun(); //这里这个a和上面那个a地址不一样,有没有办法让地址一样呢?
}
例如有一个窗口A,上面有一个按钮(ConnectSVRBtn),单击一下这个按钮,可以与远程TCP服务器建立起socket连接,然后在这个窗口A上,还有另外一个按钮(OpenWndBtn),单击一下这个按钮,会弹出一个新窗口B,在这个新窗口上,有一个按钮(SendTxt),这个按钮是想向服务器发送一段字符串,因为之前已经用窗口A按下ConnectSVRBtn已经与服务器建立socket连接了,那么理论上按下B窗口上的SendTxt,是不需要再次建立socket连接了吧,因为A窗口上已经建立过了嘛。但是窗口B上,SendTxt触发的时候,却提示socket连接未建立
Jason®(317471417) 12:51:06
而连接和发送都是调用上面那段代码中的CTest a这个方法来操作的
例如,ConnectSVRBtn函数内部其实是a->connectSVR(ip,port); 而SendTxt函数内部调用的是 a->send(CONNID, buf,len);
他们的问题就是出在,a->connectSVR(ip,port)建立成功后,这里a的地址和a->(connid,buf,len);的a的地址不一样
所以a->send(connid,buf,len);才会提示发送失败,因为未建立socket的错误
请问该怎么解决啊?望C++大神出来解答一下。