C++ Nicht aufrufen Konstruktor '' direkt

Arbeite ich an einigen OpenCV code und entwickelt es in VS 2008 auf windows. Ich versuche den code auszuführen, der unter Linux mit g++, aber ich bekomme die Fehlermeldung "Cannot call constructor 'ImageProcessor::ImageProcessor "direkt" für ImageProcessor und alle anderen Klassen die ich erstellt habe. Ich habe versucht, einen Weg zu finden, um indirekt den Konstruktor aufrufen, aber ohne Erfolg. Jeder Vorschlag wäre toll. Der code wird kompiliert und läuft einwandfrei auf Windows.

if (x == 1){
    cout <<"MODE SELECTED: IMAGE TESTING \n";
    ImageProcessor* IP = new ImageProcessor;
    LaneDetector* LD = new LaneDetector;
    LaneInfo* LI1 = new LaneInfo;
    LaneInfo* LI2 = new LaneInfo;
    LaneVector* LV = new LaneVector;
    cvNamedWindow("Window",CV_WINDOW_AUTOSIZE);

    IplImage* temp = 0;
    IplImage* img0 = 0;
    img0 = cvLoadImage(PICTURE_INPUT);
    CvRect r = cvRect(0,((img0->height)/3),img0->width,((img0->height)/3)+20);
    cout <<"IMG0 LOADED \n";

    while(1){
        IP->ImageProcessor::ImageProcessor(img0, r);
        temp = IP->ImageProcessor::get_processed_image();
        LD->LaneDetector::LaneDetector(temp,r);
        LD->LaneDetector::find_edges();
        LI1 = LD->LaneDetector::find_lanes(5);
        LI2 = LD->LaneDetector::find_lanes(25);
        LV->LaneVector::LaneVector(LI1,LI2);
        LV->LaneVector::print_lane_angle_info();

        if( (cvWaitKey(20) & 255) == 27 ) break;
        cvShowImage("Window", temp);
        hold(1);
    }
}
Bitte liefern Sie die Erklärung für ImageProcessor
Sie müssen uns nur sagen, wo der Fehler Auftritt und wie Ed sagt, was bedeutet ImageProcessor Aussehen? Die erste Zeile in der while-Schleife sieht seltsam für mich.
C++ funktioniert anders als das. Starten Sie mit einem guten Buch.
¤ In C++ Variablen nicht new-ed, es sei denn, Sie möchten eine beliebige Lebensdauer. Einfach eine variable deklarieren, die v Typ T als T v;. Für Ihre image-Prozessor-Objekt, deklarieren Sie die variable in der Schleife, wie ImageProcessor ip( img0, r );. Das ist alles neu die genannten problem. Aber darüber hinaus sollten Sie unterlassen GROßBUCHSTABEN verwenden, Variablennamen. Reserve dass für die makro-Namen. Cheers & hth., und machen sich selbst ein gutes C++ Anfänger Buch!,

InformationsquelleAutor Wade G | 2012-02-12

Schreibe einen Kommentar