小学生请教:结构体中能否包含对象?? 我想在结构体里面加入一个CString对象,不知道结构体中能否包含对象?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,但是的是MFC程序,建议包含std::string,stl标准库 "可以,但是在序列化的时候(写到文件中或者内存拷贝之类),要注意成员类的特殊性,不能按照字节拷贝。"应该可以用拷贝函数吧。以下是我做的一个测试://myStruct.hstruct subStruct{ int subVal;};struct testStruct{ int iVal; char cVal; subStruct mySub;};err = memcpy_s(&anotherStruct, sizeof(testStruct), pAStruct, sizeof(testStruct));结果正确。 最好不要放CString,而是放TCHAR数组,否则会比较麻烦,因为STRUCT一般用于轻量级的数据类型。 to Rambo8202:你举的例子可以拷贝,是因为你的struct中都是基本数据类型,基本数据类型都是定长度的,所以可以直接memcpy。但是如果一个struct中拥有CString等对象的话,你不可以直接memcpy,如果你清楚一个CString对象跟一个int对象的却别的话,你就明白为什么不可以。可以使用两种方法:1、不用struct,用class,并且从CObject继承,重载Serialize(CArchive& ar)函数,让这个class支持串行化存储2、自己写一个串行化的方法,针对你这个struct,遇到CString的地方,只存储CString的值 如果要放CString,建议把结构改成类,过载一下=号 vc对.mat文件的读取出现链接错误 vc 位图处理 bitmap 拉伸存储 串口通讯中字节位置转换的问题!既高低位位置转换! 使用MICROSOFT.XMLHTTP在WIN98+IE5.5上结果乱码 不理解的错误-C2662 第一次看到这样的格式:catch (...),void LogMsg (UINT nResID, ...) VC写的COM,DELPHI调用的问题 这个怎磨用? 有关表达式求值的问题(急需) 有哪位高手对ddraw.lib这库使用比较熟悉? 套接字字符串接收缓存大小问题~!!!急
应该可以用拷贝函数吧。以下是我做的一个测试://myStruct.h
struct subStruct
{
int subVal;
};
struct testStruct
{
int iVal;
char cVal;
subStruct mySub;
};
err = memcpy_s(&anotherStruct, sizeof(testStruct), pAStruct, sizeof(testStruct));
结果正确。
你举的例子可以拷贝,是因为你的struct中都是基本数据类型,基本数据类型都是定长度的,所以可以直接memcpy。但是如果一个struct中拥有CString等对象的话,你不可以直接memcpy,如果你清楚一个CString对象跟一个int对象的却别的话,你就明白为什么不可以。可以使用两种方法:
1、不用struct,用class,并且从CObject继承,重载Serialize(CArchive& ar)函数,让这个class支持串行化存储
2、自己写一个串行化的方法,针对你这个struct,遇到CString的地方,只存储CString的值