2016-07-26 16 views
-4

ich eine myVector Klasse:C++ Aufruf eine Funktion mit einem Vektor als Parameter in Haupt

class myVector { 

public: 

    void populateVector(); 
    void showMenu(vector <myVector> const &vec_first); 

private: 

    vector <myVector> &vec_first; 

} 

Ich habe meinen Vektor noch nicht gefüllt, aber ich möchte im Wesentlichen den Vektor in der showMenu verwenden, um() Funktion In meinem main tritt jedoch ein Problem auf, wenn ich versuche, die Funktion showMenu() aufzurufen.

int main() { 
    myVector obj; 
    obj.showMenu(vector <myVector> const &vec_first); 
} 

Codeblöcke sagt immer wieder:

main.cpp|33|error: expected primary-expression before 'const'

+2

Sie haben einen 'Vektor ' als Mitglied von 'myVector'? Was? Könnten Sie bitte vernünftige Namen verwenden? –

+0

Es sieht so aus, als ob Sie versuchen, eine Variable in der Mitte einer Funktionsargumentliste zu deklarieren. Das ist nicht erlaubt. –

+2

Holen Sie sich ein Buch oder ein Tutorial über C++ –

Antwort

3

Ihr die Funktionsdeklaration verwechseln es mit Aufruf. Sie müssen

int main() { 
    myVector obj; 
    vector<myVector> vec; 
    obj.showMenu(vec); 
} 

oder so ähnlich

+0

Die Typen stimmen nicht überein. –

+0

oops - fixed .... – pm100

0

I haven't filled my vector yet but I want to essentially use the vector in the showMenu() function, however, a problem arises in my main when I attempt to call the showMenu() function.

nicht den Vektor übergeben Sie (oder irgendetwas) in durch showMenu; Es hat bereits Zugriff auf den Vektor, der ein Mitglied derselben Klasse ist.

Wenn Sie did möchten, übergeben Sie eine Funktion Argument, Wiederholung der ursprünglichen Erklärung des Arguments wäre nicht der Weg, es zu tun. Nur sein Name sollte angegeben werden. Hier wäre das:

obj.showMenu(obj.vec_first); 

& hellip; wenn vec_first nicht private sind.

Es sieht so aus, als müssten Sie zu den Grundlagen zurückkehren und die ersten Kapitel Ihres C++ Buches lesen.

+0

Oh, okay, danke! – AK995