- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
class imgSeq {
public:
CvSeq* faces;
IplImage* img;
IplImage* small_img;
IplImage* gray;
CvMemStorage* storage;
int id;
imgSeq() {
CvSeq* faces = 0;
IplImage* img = 0;
IplImage* small_img = 0;
IplImage* gray =0 ;
CvMemStorage* storage = 0;
id = -1; //unassigned
};
};
только разве что использовать struct заместо class
в чем косяк?
а ворнингов разве не выдается на такое?
это я веду к тому, что компилятор не должен отвечать за твои ошибки.
Структура используется активно и повсюду.
Ещё там до структуры стоял коммент, что поле id - только для дебага, так что я его тут же замочил. Потом оказалось, что оно по всему коду активно используется как индекс......
представьте, например, такой код (сорри что на Жабе но вы ж ее поймете ;)
public class foo {
int a;
int b;
int c;
foo(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
}
Потом параметры конструктора заэкстракчены всей толпой: из параметров в переменные. А присваивания временно убраны как ненужные...
При использовании списков инициализации такие косяки попросту невозможны. Хотя списком инициализации этот "код" не спасти =)
class imgSeq {
public:
CvSeq* faces;
IplImage* img;
IplImage* small_img;
IplImage* gray;
CvMemStorage* storage;
int id;
imgSeq():
CvSeq* faces ( 0 ),
IplImage* img ( 0 ),
IplImage* small_img ( 0 ),
IplImage* gray ( 0 ),
CvMemStorage* storage ( 0 ),
id ( -1 ) //unassigned
{};
};
А лучше даже так:
class imgSeq {
public:
CvSeq* faces;
IplImage* img;
IplImage* small_img;
IplImage* gray;
CvMemStorage* storage;
int id;
imgSeq():
faces ( 0 ),
img ( 0 ),
small_img ( 0 ),
gray ( 0 ),
storage ( 0 ),
id ( -1 ) //unassigned
{};
};
Так правда что ли можно писать? O_o
А зачем?
В универе учили только тому, как написано во втором случае