2011-03-03 61 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對象的指針,你真的不需要先複製它。只需將參數傳遞給下一個函數即可。

如果您發送指針的類恰好保存並稍後嘗試訪問您的副本,那麼只需將指針傳遞給在函數結尾處銷燬的本地對象就會遇到更多麻煩。