vector in header macht probleme



  • hallo,
    ich wollt grad mal in einer header datei den vector header inlcuden. bis dahin hat auchc alles funktioniert. als ich dann aber einen vector erstellen wolltehat er gemeckert.

    //strfunc.h
    #ifndef strfunc_h_
    #define strfunc_h_
    
    #include <math.h>
    #include <vector>
    //#include "control.h"  <<eigener header
    
    vector<char> operators();//Zeile 8//<<--hier meckert er schon
    vector<float> operands();//Zeile 9//<<--und hier auch
    
    void calc(void)
    {
         //irgendwelcher code
    }
    
    float strfunc(char* func)
    {
        vector<char> operators();//<<--ich hab versuch die deklaration oben durch diese zu ersetzten, hat aber nix gebracht
        vector<float> operands(); 
    
        //irgendwelcher code
    
    }
    
    #endif
    

    Fehler:

    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(8) : error C2143: Syntaxfehler : Fehlendes ';' vor '<'
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(8) : error C2501: 'vector' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(8) : error C2143: Syntaxfehler : Fehlendes ';' vor '<'
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(9) : error C2143: Syntaxfehler : Fehlendes ';' vor '<'
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(9) : error C2501: 'vector' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(9) : error C2086: 'vector' : Neudefinition
    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(9) : error C2143: Syntaxfehler : Fehlendes ';' vor '<'
    
    //main.cpp
    #include <cstdlib>
    #include <iostream>
    #include <vector>
    #include <math.h>
    //#include "control.h" <<eigener header
    #include "strfunc.h"
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        char *str;
        vector<char> operators(12);//<<hier
        vector<char*> operands();//<<und hier meckerst er nicht
    
        return 0;
    }
    

    kann mir jemand sagen, woran das liegt und wie ich das beheben kann?



  • Die Klassen liegen im Standard Namensraum, den du entweder
    öffnen (using namespace std) oder einfach mit std:: angeben kannst.



  • danke

    leider hab ich jetzt ein neues problem und keine ahnung.

    jetzt hab ich am anfang

    using namespace std;
    

    eingefügt

    wenn ich jetzt x.size() aufrufe sagt er mir:

    c:\programme\microsoft visual studio\myprojects\2varfunk\strfunc.h(13) : error C2228: Der linke Teil von '.size' muss eine Klasse/Struktur/Union sein
    

    und das für jeder vectormemberfunktionkann

    kann mir jemand sagen, was ich jetzt schon wieder falsch mache?



  • kann mir keiner sagen, was ich falsch mache?



  • Hallo

    vector<char> operators(12);
    

    was genau erhoffst du dir davon?
    Ein einfacher Vektor wird so deklariert :

    vector<char> operators;
    

    bis bald
    akari



  • akari schrieb:

    Hallo

    vector<char> operators(12);
    

    was genau erhoffst du dir davon?
    Ein einfacher Vektor wird so deklariert :

    vector<char> operators;
    

    bis bald
    akari

    In den Klammern steht die Anzahl der Elemente die der Vector vorreservieren soll,
    ist schon ganz sinnvoll 😉

    Devil


Anmelden zum Antworten