Помогите с копированием объекта в C ++ mfc - PullRequest
1 голос
/ 03 марта 2011

У меня есть этот код, который не работает:

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 ]

2 голосов
/ 03 марта 2011

Если вам нужно клонировать i_CParametreSet, вам нужно:

  1. Класс CParamterSet, объявляющий «конструктор копирования»
  2. Копирование данных экземпляра вручную (возможно, не работает из-зазащищенные частные члены)

Также следует обратить внимание на содержание класса и решить, нужна ли вам мелкая копия или глубокая копия экземпляра класса.

0 голосов
/ 03 марта 2011

Если вы просто отправляете указатель на const-объект, вам не нужно сначала его копировать.Просто передайте параметр следующей функции.

Если случится, что класс, которому вы отправляете указатель, сохранит его и попытается получить доступ к вашей копии позже, у вас просто будет больше проблем с передачей указателя на локальныйобъект, который уничтожается в конце функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...