Re[6]: C++ и указатели
От: huntex http://troyashka.ru/
Дата: 24.01.11 15:43
Оценка:
Я только начинаю учить С++. Не обращайте внимания, что используются объекты OpenCV ...
Вообщем ошибку дает функция foo3(). Это функция OpenCV, но это не имеет значения, так как она работает, если я не разделяю код, данная функция требует указатель на объект _h.

Вообщем у меня есть некий код, который работает таким образом:

void foo1()
{
   CvMat _h = cvMat(3, 3, CV_64F); // присваивание
   
   ... работа с _h ... 
   
   foo3(& _h); // верный результат!
}


Теперь, я хочу разделить работу программы на две функции:

void foo1()
{
   CvMat _h; // создание объекта
   
   foo2(& _h); // передача указателя в функцию
   
   foo3(& _h); // И ВОТ тут возникает ошибка (то есть получается, что входные параметры неверные)
}

void foo2(CvMat * _h)
{
   * _h = cvMat(3, 3, CV_64F); // инициализация
   
   ... работа с _h ...   
}


На языке C#, который я более-менее знаю, разделение на 2 функции выглядело бы так:

void foo1()
{
   CvMat _h; // создаем объект
   
   foo2(out _h); // передаем его в функцию, которая изменяет этот объект
   
   foo3(_h); // измененный объект передаем сюда
   // вообщето, как я уже говорил foo3() требует указатель, но у меня вопрос другой - КАК разделить код на 2 функции - КАК правильно передать параметр

}

void foo2(out CvMat _h)
{
   _h = cvMat(3, 3, CV_64F); // инициализация
   
   ... работа с _h ...   
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.