J'écris un serveur en C++ et crée une classe appelée client pour stocker des informations sur les clients connectés. Je voulais stocker les clients dans un vecteur. J'ai un appelComment ajouter une 'nouvelle' classe à un vecteur
clients.push_back(new client(addr,fd));
pour ajouter un objet client aux clients vectoriels. Je reçois l'erreur suivante sur la compilation
server.cpp:67: error: no matching function for call to ‘std::vector<client, std::allocator<client> >::push_back(client*)
Je pense qu'il a quelque chose à voir avec mon incompréhension du mot-clé new
et la façon dont les données sont stockées/déplacé en C++. Je viens d'un arrière-plan Java, donc je ne suis pas habitué aux pointeurs et aux memmorys de C++.
Il n'y a rien de mal à cela, à quoi ressemble la ligne où vous déclarez votre vecteur 'clients'? –
Vous avez [un bon livre d'introduction C++,] (http://stackoverflow.com/questions/388242/the-definitive-c++-book-guide-and-list)? Sinon, vous avez vraiment besoin d'en avoir un et de le lire. Je devine de votre message que vous ne comprenez probablement pas les bases de la gestion de la mémoire en C++, et c'est un domaine qui est plein de pièges communs. –
Probablement votre vecteur n'est pas déclaré comme «vecteur» mais comme «vecteur » –