Aufeinander zugreifende Klassen
-
"friend void a::atest();" kannste nicht schreiben, wenn a ein unvollständiger typ ist. Aber du kannst stattdessen "friend class a;" schreiben.
-
#include <iostream.h> class a; class b; class b { private: friend void a::atest();///HIer ist a noch nicht definiert, es gibt also noch keinen Member von [c]a[/c] der [c]atest()[/c] heißt.friendist übrigens meistens keine so gute Idee (dazu gibt es ein Zitat).
Nimm also kks Vorschlag (wenn es denn umbedingt sein muss).
Übrigens, was hast du denn für einen Compiler? Einen von den wilden Neunzigern? Standardheader haben seit C++98 keine Dateiendung.
-
Abgesehen von der Benutzung von iostream.h und cout ohne std, die auf einen Compiler hindeuten, der seit 15 Jahren veraltet ist:
Du kannst keine Memberfunktion als friend deklarieren, bevor der Compiler sie nicht gesehen hat. Du kannst:
- Die ganze Klasse a als friend angeben.
- Dir eine Zwischenklasse basteln, die ungefähr den gleichen Effekt hat wie das friend:
http://stackoverflow.com/questions/6310720/declare-a-member-function-of-a-forward-declared-class-as-friend?answertab=votes#tab-top - Darüber nachdenken, ob hier überhaupt diese Abhängigkeiten nötig sind. Bei abstrakten a und b kann ich das nicht beurteilen. Häufig ist so etwas aber ein Designfehler. Ein a hat ein b, gleichzeitig sind alle b ein Freund von einem bestimmten anderen Teil aller a? Klingt nach einer komischen Beziehung.
-
Ich hab die beta Version von c++ 5. Zeigt zwar dauernd Fehler an, die es nicht gibt, geht aber halbwegs. Ich hab auch header Dateien ohne Endung mit std, aber bei c++ in 21 Tagen werden fast immer die alten Header Dateien benutzt, da habe ich mich dran gewöhnt.
-
irgendwas schrieb:
Ich hab die beta Version von c++ 5.
Meinst du DEV C++?
Zeigt zwar dauernd Fehler an, die es nicht gibt, geht aber halbwegs. Ich hab auch header Dateien ohne Endung mit std, aber bei c++ in 21 Tagen werden fast immer die alten Header Dateien benutzt, da habe ich mich dran gewöhnt.
Schlechtes Buch. Nicht benutzen! Versuch es noch irgendwie zu Geld zu machen und guck dir mal den zweiten Link in meiner Signatur an.
-
Ja, dev c++.
c++ in 21 Tagen hab ich eh schon durch.
Ich guck mal, was es so in meiner bibliothek gibt, ansonsten kauf ich mir vielleicht "C++: Objektorientiertes Programmieren von Anfang an", ist noch am billigsten.
-
irgendwas schrieb:
Ich guck mal, was es so in meiner bibliothek gibt, ansonsten kauf ich mir vielleicht "C++: Objektorientiertes Programmieren von Anfang an", ist noch am billigsten.
Tut mir jetzt echt Leid dir das sagen zu müssen, aber Fachbücher fürs Programmieren kosten durchschnittlich 40€.
Also lieber einmal ein gutes Buch kaufen (C++-Primer), und dann hast du es, anstatt wie jetzt nochmal eins kaufen usw.
-
SeppJ schrieb:
Versuch es noch irgendwie zu Geld zu machen[...]
Damit der nächste mit den gleichen Problemen kommt.

-
FreakY<3Cpp schrieb:
SeppJ schrieb:
Versuch es noch irgendwie zu Geld zu machen[...]
Damit der nächste mit den gleichen Problemen kommt.

Ich fürchte, das lässt sich sowieso nicht vermeiden. So macht der Verlag wenigstens nicht noch mehr Gewinn und der Threadersteller hat nicht so große Scheu, sich tatsächlich ein besseres Buch zu kaufen. Menschen hängen leider sehr an Sachen, für die sie Geld ausgegeben haben.
-
Ich hab mir "c++ in 21 Tagen" doch nicht gekauft, das gibts umsonst im Internet.
"Der C++ Programmierer" hört sich noch ganz gut an.
-
irgendwas schrieb:
"Der C++ Programmierer" hört sich noch ganz gut an.
Ja, der ist gut. Hol in dir, wenn du willst.
-
irgendwas schrieb:
Ich hab mir "c++ in 21 Tagen" doch nicht gekauft, das gibts umsonst im Internet.
"Der C++ Programmierer" hört sich noch ganz gut an.Legal?
-
IrgendeinName schrieb:
irgendwas schrieb:
Ich hab mir "c++ in 21 Tagen" doch nicht gekauft, das gibts umsonst im Internet.
"Der C++ Programmierer" hört sich noch ganz gut an.Legal?
Hmm? Ist doch egal. Wir leben in einem Zeitalter in dem wir sogar unbewusst viel illegales tun.
-
Nee, nee legal.