自己定义的一个类,及其对象
class CMyClass1
{
public
int m_nA;
double m_dB;
CString m_strC;
void Fuction1();
}MyObject1;
作为同一个程序,我可以作为参数互相传递,
可是我想传递到另外的程序,另外的机器上的.
class CMyClass1
{
public
int m_nA;
double m_dB;
CString m_strC;
void Fuction1();
}MyObject1;
作为同一个程序,我可以作为参数互相传递,
可是我想传递到另外的程序,另外的机器上的.
recv(sockClient,(char*)&obj,sizeof(MyObject1 obj;),0);
用DCOM吧
我的想法也是这个样子,
比方,我在同个程序里,我要传递参数
我只需将其作函数的参数,就可以把类传递到函数
可是TCP/IP收到的是一个缓冲区,其长度一般是固定的,
如果我传递简单的数据,可以sizeof()
可是类呢?
你可以在主\从分别建二个同一个类的不同对象,传的时候你只传类中有用的成员变量或成员函数所用的参数过去.
比如从客方只传YourObject.m_nA过去,然后相应的给主机方那个对象的相应成员变量赋这个值.这不就相当于在主方做了一个客方这个对象的一个复本了吗?
应该是,在c++中,struct和class一回事,不是反过来,这有区别的。呵呵,要传类的话,把源代码传过去就可以了。:)
应该是传对象,或类的实例。
这样跨进程的传输必须非常小心,你必须把实例中通过指针引用的任何东西一起传过去,无论直接的,还是间接的。
搂主不是想自己搞一套rpc吧!用rpc吧。
其实,我应该传递数据过去,就行了,
就像,我们把一个类的对象传递到函数里,其实传递的是对象的成员数据,而不一定包含成员函数,这个是好像有个拷贝构造函数的概念在这里
c++的基础教材,讲引用时候提到.
CMyClass01
{
public
m_nA;
int function1(int);
}int GlobleFunction(CMyClass01 myObject);//error
在类的定义里没有定义拷贝构造函数,在编译GlobleFunction时候会出错.CMyClass01
{
public
const CMyClass01& operator=(const CMyClass01& aMyClass01Object);//拷贝构造函数
m_nA;
int function1(int);
}
const CMyClass01& operator=(const CMyClass01& aMyClass01Object);
{
this->m_nA=aMyClass01Object.m_nA;
return this;
}
我应该传递数据过去就行了,只不过,我需要另外写个结构体,而且,结构体中只用基本的数据类型.
我的说法对吗,欢迎讨论
Copy Constructor,只是存在着深COPY与浅COPY的问题,一般情况下,如果你的类需要一个Deconstructor,那么你也需要为它自定义一个Copy Constructor
还有啊,Copy Constructor的声明一般应该是:
ClassName(ClassName &oldObject);你上面声明的只是赋值运算的重载
TO howtotell(touch):类的实例只包括它的数据成员,所以SIZEOF()这种形式行不通