2010-05-05 9 views
17

Sto usando Cygwin con GCC, e in ultima analisi, voglio leggere in un file di caratteri in un vettore di caratteri, e utilizzando questo codiceC++ vector.push_back error: richiesta per membro 'push_back' ..., che è di tipo non di classe '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; 
} 

genera questo errore di compilazione tempo:

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 >()()'

ho provato questo con un vettore di interi e stringhe pure e hanno avuto lo stesso problema.

risposta

42

Non usare parentesi per richiamare il costruttore di default:

vector<char> string1; 

In caso contrario, questo dichiara una funzione string1 che non accetta argumentes e restituisce un vector<char>.

6

Rimuovere i paren nella dichiarazione dello vector - fanno sì che sia una dichiarazione di funzione e non una dichiarazione di vettore.

Problemi correlati