PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++/MFC] Probleme mit CArray


BavariaBlade
2006-06-22, 15:38:32
Hi, ich hab probleme mehrere Instanzen meiner Klasse SocketServer(erbt von CAsyncSocket) in einen CArray zu packen.


CArray<SocketServer,SocketServer&> arr;

SocketServer *so = new SocketServer;
arr.Add(*so);


liefert den Fehler:

error C2248: 'CAsyncSocket::operator =' : cannot access private member declared in class 'CAsyncSocket'
c:\Programme\Microsoft Visual Studio 8\VC\atlmfc\include\afxsock.h(102) : see declaration of 'CAsyncSocket::operator ='
c:\Programme\Microsoft Visual Studio 8\VC\atlmfc\include\afxsock.h(97) : see declaration of 'CAsyncSocket'
This diagnostic occurred in the compiler generated function 'SocketServer &SocketServer::operator =(const SocketServer &)'

ich hab keine Ahnung was ich falsch mache, zumal einzelne Instanzen von SocketServer ohne Probleme funktionieren, auch in einem normalem Array gibt es keine Probleme?!
HILFEEE :)

servus BB

Trap
2006-06-22, 16:24:35
SocketServer *so = new SocketServer;
SocketServer bar = *so;
Geht das?

Wenn es nicht geht musst du SocketServer* im CArray speichern.

BavariaBlade
2006-06-22, 16:34:54
Trap[/POST]']SocketServer *so = new SocketServer;
SocketServer bar = *so;
Geht das?

Wenn es nicht geht musst du SocketServer* im CArray speichern.

SocketServer *so = new SocketServer;
SocketServer sa =*so;
arr.Add(sa);

liefert leider den gleichen fehler.

Wie würde ein CArray mir SocketServer aussehehn?

CArray<*SocketServer,*SocketServer> arr;
liefert tausend fehler....

..aber danke für die Hilfe

Trap
2006-06-22, 16:42:37
Geht mein Code ohne das arr.add?

Ich weiß nicht was die Parameter bei CArray bedeuten, aber die Syntax für pointer als template Parameter sieht so aus:
CArray<SocketServer*,SocketServer*> arr;

BavariaBlade
2006-06-22, 16:58:48
Trap[/POST]']Geht mein Code ohne das arr.add?


oh komisch geht auch nicht, gleicher Fehler.

Trap[/POST]']

Ich weiß nicht was die Parameter bei CArray bedeuten, aber die Syntax für pointer als template Parameter sieht so aus:
CArray<SocketServer*,SocketServer*> arr;

Uh danke, das funzt. Muss ich später mal noch genauer testen, aber das compilieren und debuggen geht jetzt, DANKE !!!