eigene Struct mit Vector benutzen
-
Hallo @ all,
also ich habe eine struct erstellt mit:
struct CONNECTION
{
CServerSocket m_pClientSocket;
int status;
};und will davon nun mit vector ein dynamisches array ertstellen über:
vector<CONNECTION>m_pConnections;
allerdings kommt dann immer folgende fehlermeldung:
error C2558: struct 'CONNECTION' : no copy constructor available or copy constructor is declared 'explicit'
wie kann ich ihm das beibringen???
danke im voraus für eure hilfe.
-
CServerSocket kann nicht kopiert werden, was bedeutet du kannst das dem vector gar nicht beibringen

Lösung 1: du gibst CServerSocket nen copy constructor
Lösung 2: Du speicherst zeiger auf CONNECTION im verctor dann musst CServerSocket nicht kopieren
-
ich würde boost::shared_ptr nehmen
-
jetzt kommen bestimmt ne menge buuuuhhhsss, aba wie gebe ich den CServerSocket nen Copy Constructor???

-
class CServerSocket { ... public: // copy constructur CServerSocket(const CServerSocket &r) { // copiere r in die aktuellen instanz } ... }
-
Den Copy-Constructor müsstest du dann aber mit einem Referenz-Zähler implementieren. Und dann kannste gleich boost::shared_ptr nehmen.
-
Wieso so kompliziert?
Nimm doch einfach einen Vektor von Zeigern auf CONNECTION structsvector<CONNECTION*> m_pConnections;Ist aus Performancegründen sowieso besser