[solved] class foo{}; vector<foo*> bar; funktioniert nicht?



  • Hallo.
    Ich muss einen array von pointern mit dynamischer länge irgendwie speichern.
    Der index der elemente MUSS derselbe bleiben, also wollte ich das element, das zu entfernen ist einfach auf NULL setzen und bei jedem lesen des elements einen fehler ausgeben.

    Compiler: MS Visual C++ 2010 Express (Windows 7)
    Fehler:

    MS VC++10 Compiler schrieb:

    `f_ctrl.cpp(13): error C2143: syntax error : missing ';' before '<'

    f_ctrl.cpp(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    f_ctrl.cpp(13): error C2238: unexpected token(s) preceding ';'`

    Mein Code:
    feature.h

    class FEATURE
    {
    public:
    };
    

    f_ctrl.cpp (feature-control)

    #include <vector>
    #include "feature.h"
    #include "KAP.h"
    
    class FeatureCTRL
    {
    private:
    	vector<FEATURE*> list; // HIER ist der fehler
    	KAP* k;
    public:
    	FeatureCTRL(KAP* kap)
    	{
    		k = kap;
    	}
    };
    


  • du musst std::vector schreiben (zumindest im Header). In der cpp kannst du dann

    using namespace std;

    schreiben.

    Und deine Membervariable würde ich nicht list nennen, könnte mit std::list kollidieren, wenn jemand std importiert.



  • vector lebt im Namensraum std:

    std::vector<FEATURE*> list;
    


  • OOPs, das war ja ein blöder fehler. Hat aber auch noch ne ganze tone an anderen fehlern beseitigt.
    Danke für schnelle antworten! 🙄


Anmelden zum Antworten