如何复制一个类实例。
我有一个类,其成员变量太多,在复制时所以如果要一一赋值,代码太长了,有没有更好的办法呢?
CMark* CMyClassCopy(CMark *pMark)
{
CMark *pMarkDest = new CMark;
//这里如何将pMark的内容复制给pMarkDest呢,(别说是一一赋值哟,可不可以用CopyMemory之类的东西,如果可以,又该如何用呢?)
....
return pMarkDest;
}
问题点数:20、回复次数:7Top
1 楼explorer007(KKcat)回复于 2002-09-05 10:16:10 得分 3
拷贝构造函数。。。Top
2 楼huapu(寒雪(老问老问题的老手!))回复于 2002-09-05 10:35:20 得分 0
不明白
我的构造函数里面是些默认值,而我要复制的其成员已经改变许多了,所以这办法没什么用.Top
3 楼huapu(寒雪(老问老问题的老手!))回复于 2002-09-05 10:43:07 得分 0
不知道通过剪贴板行不行,但是又要用自定义剪贴板格式,并且
要将类复制到剪贴板也不是一件容易的事Top
4 楼llwwwww(小风(我的帖子顶起来都有分,这一点你放心))回复于 2002-09-05 11:12:41 得分 3
重载operator =Top
5 楼explorer007(KKcat)回复于 2002-09-06 14:11:43 得分 3
没错 所以需要拷贝构造函数 不是构造函数 :)Top
6 楼zeroweb()回复于 2002-09-06 14:22:07 得分 3
重载operator =
Top
7 楼codemon(珍爱生命,远离美女)回复于 2002-09-06 14:41:01 得分 8
//拷贝构造函数
CMark::CMark(const CMark& mark)
{
....
//一一赋值
....
}
CMark* CMyClassCopy(CMark *pMark)
{
CMark *pMarkDest = new CMark(*pMark);//要保证pMark不为NULL
return pMarkDest;
}
Top




