friend funktion
-
Hallo,
ich habe ein Problem mit einer friend Funktion.
ich möchte eine Variable die in einer Klasse deklariert ist
in einer anderen klassen Funktion benutzen.mein code sieht so aus , aber das geht nicht:
class Scanner { friend HRESULT Connect(IUnknown* pUnk, IMemAllocator* pAlloc, BOOL bSync); public: long cThis; . .
HRESULT CPull::Connect(IUnknown* pUnk, IMemAllocator* pAlloc, BOOL bSync) { llTotal = cThis; . .
die fehlermeldung lautet : nichtdeklarierter Bezeichner
aber wenn ich auf die varialble in connect und "gehe zur definietion"
klicke dann komm ich in die Scanner Klasse auf die variable.kann mir jemand sagen was ich falsch mache? Danke
-
du benötigst ein Objekt der Klasse Scanner, um auf dessen Membervariable zuzugreifen:
HRESULT Connect(...) { Scanner sc=/* get the Scanner */; llTotal = sc.cThis; //... }
btw, es gibt einen Unterschied zwischen "HRESULT Connect(...)" (globale Funktion und Freund von Scanner) und "HRESULT CPull::Connect(...)" (Member einer anderen Klasse - und unabhängig von Scanner)
-
Ich danke dir für deine hilfe. Ich habs hinbekommen.