Как инициализировать целочисленный указатель в C ++? - PullRequest
2 голосов
/ 01 августа 2010

У меня очень простой вопрос.

Я хочу написать следующую строку кода в 2 строки:

IplImage *image = 0;

например:

IplImage *image;
image = 0;

Iхочу знать, что я написал правильно, иначе я хочу знать, как написать правильное (в две строки).

Спасибо

Ответы [ 5 ]

5 голосов
/ 01 августа 2010

Совершенно верно.Но если у вас нет очень веских оснований сделать это таким образом, я бы предложил оставить это как одну строку, которая объявляет и инициализирует это.Это более очевидно, и вы вряд ли когда-либо пропустите инициализацию указателя таким образом.

1 голос
/ 01 августа 2010

Запись

IplImage *image = 0;

кажется более понятной, поскольку очевидно, что используется указатель.

С

IplImage *image;
image = 0;

у вас могут быть дополнительные строки кодамежду первой и второй линией.Вторая строка (image = 0) кажется мне менее понятной.Возможно, переименование переменной в pImage улучшает удобочитаемость, если вы предпочитаете второй вариант (с двумя строками).

1 голос
/ 01 августа 2010

Это правильно.Почему ты просто не попробовал это?

0 голосов
/ 23 января 2013

В С ++

IplImage *image(NULL);

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

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

0 голосов
/ 01 августа 2010

Iplimage - это структура, определенная в opencv.Вы можете использовать код ниже для инициализации указателя:

Iplimage* image=cvCreateImage(width,height,channels);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...