Permalänk

c++ Classer kommunikation

Hej, Jag är amatör kan jag börja med. Jag har googlat runt lite på frågan om hur man på ett smidigt sätt kan få klasser att "prata" med varandra och byta ut info på smidigt sätt.

Jag har löst det på så sätt att jag skickar en pekare som parameter varje gång jag skapar en ny class.

Dock känns detta som en "hemmabyggd" metod och undrar om det finns något smidigare som kanske håller i längden.

Tack i förhand

Visa signatur

| i5 2500k | h100 | Evga 580 | Fractal Design arc | Asrock P67 Fatal1ty | Hx1050w | 24" BenQ | 16GB Vengeance Ram | Razer DeathAdder | Razer Carcharias | Razer Arctosa |

Permalänk
Medlem

Eh? wtf?:P Lite svårt att tolka va du menar med "prata", men jag antar att du bara menar vanliga metodinvokationer?
Ett objekt av klass 1 kan skapa ett objekt av typen klass 2 för att sedan komma åt det nya objektets metoder via variabeln som refererar till objektet.

{//Från första klassen Class2 object2 = new Class2(); int whateverReturnValue = object2.methodName();//kommer ge tillbaka värde enligt metodens definition i Class2. //gör något med värdet? }

Det är väl så basic som det kan bli?:o

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Skrivet av Gnejs:

Eh? wtf?:P Lite svårt att tolka va du menar med "prata", men jag antar att du bara menar vanliga metodinvokationer?
Ett objekt av klass 1 kan skapa ett objekt av typen klass 2 för att sedan komma åt det nya objektets metoder via variabeln som refererar till objektet.

{//Från första klassen Class2 object2 = new Class2(); int whateverReturnValue = object2.methodName();//kommer ge tillbaka värde enligt metodens definition i Class2. //gör något med värdet? }

Det är väl så basic som det kan bli?:o

När jag läser igenom det själv kanske jag var lite otydlig hehe. Vad jag menar är:

Två objekt eller flera från olika klasser behöver använda varandras funktioner.
Vad jag då vanligtvis gör är att jag skickar med objektets minnesadress som parameter när jag skapar ett nytt objekt och fixar till så att den känner till det nya objektet i konstruktören.

Vad jag undrar är om det finns något annat smidigare sätt än detta.

Hoppas jag var lite tydligare

Visa signatur

| i5 2500k | h100 | Evga 580 | Fractal Design arc | Asrock P67 Fatal1ty | Hx1050w | 24" BenQ | 16GB Vengeance Ram | Razer DeathAdder | Razer Carcharias | Razer Arctosa |

Permalänk
Medlem
Skrivet av stoffe1100:

Två objekt eller flera från olika klasser behöver använda varandras funktioner.
Vad jag då vanligtvis gör är att jag skickar med objektets minnesadress som parameter när jag skapar ett nytt objekt och fixar till så att den känner till det nya objektet i konstruktören.

Låter som ett designfel (tight coupling). Tänk igenom dina klasser och fundera över om det här är rätt sätt att göra det på. I så fall kanske Wikipedia kan hjälpa till.

Permalänk
Medlem

class ClassA : public ClassB { .. int AA = ClassB::funcB(1,2) .. }

Kanske?

Visa signatur

( ͡°╭͜ʖ╮͡° )

Permalänk
Skrivet av xavi2k:

class ClassA : public ClassB { .. int AA = ClassB::funcB(1,2) .. }

Kanske?

Bra idé, något i denna stilen jag letade efter

Visa signatur

| i5 2500k | h100 | Evga 580 | Fractal Design arc | Asrock P67 Fatal1ty | Hx1050w | 24" BenQ | 16GB Vengeance Ram | Razer DeathAdder | Razer Carcharias | Razer Arctosa |