2010-05-05 5 views
17

Ich benutze Cygwin mit GCC, und schließlich möchte ich in einer Datei von Zeichen in einem Vektor von Zeichen lesen, und mit diesem CodeC++ vector.push_back Fehler: Anfrage für Mitglied 'push_back' ..., das ist von Nicht-Klasse 'vector (char, allocator (char))()'

#include <fstream> 
#include <vector> 
#include <stdlib.h> 

using namespace std; 

int main (int argc, char *argv[]) 
{ 
    vector<char> string1(); 
    string1.push_back('a'); 

    return 0; 
} 

diesen Fehler kompilieren Zeit erzeugt:

main.cpp: In function int main(int, char**)': main.cpp:46: error: request for member push_back' in string1', which is of non -class type std::vector >()()'

ich versuchte dies mit einem Vektor von ints und Streicher als auch und sie hatten das gleiche Problem.

Antwort

42

Verwenden Sie Klammern nicht den Standard-Konstruktor aufzurufen:

vector<char> string1; 

Andernfalls erklärt dies eine Funktion, die eine string1vector<char> keine argumentes und kehrt nimmt.

6

Entfernen Sie die Parens in der Deklaration der vector - sie verursachen, dass es eine Funktionsdeklaration und keine Vektordeklaration ist.

Verwandte Themen