Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1

04.03.2014, 21:55

C++, hey! Freundchen!

Hi,
wie ihr am Titel vll. schon erraten habt geht's hier um "friend"-Beziehungen zwischen Klassen in C++.

Meine Frage ist eig. nur wie mache ich es richtig?
Denn folgender Code wird von IntelliSense nicht angenommen:

C-/C++-Quelltext

1
2
3
4
5
6
7
class Input
{
private:
bool keys[256];

friend Window::setKeys( long key, bool b );
}


Wenn ich nun versuche auf das Array zuzugreifen heißt es, dass ich nicht darauf zugriefen könne.

Was ist mir entgangen, dass ich falsch mache?

Gruß Techie

P.S. setKeys wird selbst von der WindowLoop aufgerufen sollte eine Taste verwendet werden.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

04.03.2014, 22:18

http://www.cprogramming.com/tutorial/friends.html - da wird offensichtlich, dass bei Dir etwas fehlt.

An Deiner Stelle würde ich mir aber nochmal überlegen, ob der Ansatz überhaupt einen Sinn ergibt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

04.03.2014, 22:29

In der Tat erscheint das nicht gerade sinnvoll, was du da vor hast. Ein Objekt Window sollte nicht dafür zuständig sein die Inputs abzufangen.
Vielleicht wird dir anhand eines weit verbreitetem "Beispiels" die friend-Beziehung klarer:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>

class A
{
public:
    A() : hallo("hallo") {}
    
    friend std::ostream& operator<<(std::ostream &os, const A& a)
    {
        return os << a.hallo;
    }
private:
    std::string hallo;
};


int main()
{
    A a;
    std::cout << a;
}


MfG
Check

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Checkmateing« (04.03.2014, 22:35)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

04.03.2014, 23:16

Ich habe festgestellt das die Intellisense von VS2010 bei mir Funktions-"friends" immer unterringelt.
Möglicherweise in einer neuere Version schon gefixt, nichtsdestotrotz sollte man sich auf Intellisense niemals verlassen.

Fireball

Alter Hase

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

5

05.03.2014, 12:20

ist Input auch friend in Window?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

05.03.2014, 19:39

Der Rückgabetyp der Methode fehlt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

06.03.2014, 06:39

Der Rückgabetyp der Methode fehlt.
Oller Vorsager.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

06.03.2014, 13:58

Ach sowas passiert jedem mal ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige

Ähnliche Themen