2011-03-03 78 views
1

复制一个对象,我有这个代码不工作:帮助与C++ MFC

void CAnalyzerIF::SetData(int i_iIters, const CParameterSet* i_CParameterSet) 
{ 
const CParameterSet ParameterSet=(*i_CParameterSet); //thous are the problem 
    const CParameterSet* pCParameterSet=&ParameterSet;  //lines 
// ... now im sending the pCParameterSet to other class 
} 

香港专业教育学院试图配置它们的头,但它只是利己编译。 现在它可以编译,但在运行时会失败。 也许我应该以一些二进制方式复制它....我不知道。 感谢您的帮助

回答

2

如果需要克隆i_CParametreSet你需要:

  1. 类CParamterSet声明 “拷贝构造函数”
  2. 复制手(实例数据 可能不工作由于 保护私有成员)

你也应该支付类内容的重视和决定是否需要一个浅复制或类实例的深度拷贝。

0

如果你只是发送一个指向一个const对象的指针,你真的不需要先复制它。只需将参数传递给下一个函数即可。

如果您发送指针的类恰好保存并稍后尝试访问您的副本,那么只需将指针传递给在函数结尾处销毁的本地对象就会遇到更多麻烦。