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

infinity^0

Frischling

  • »infinity^0« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Oberbayern

  • Private Nachricht senden

1

22.10.2011, 17:05

Eine Klasse ist doch mehrfach verwendbar?vc++10

Eine Klasse ist doch mehrfachverwendbar?vc++10
mooin,
eigentlich wollte ich typedef nutzen, habe hier schon mehrfach gelesen, dass es wohl nicht das wichtigste sei. Habe mich für class entschieden, warum auch nicht.
Warum kann ich ein Klasse nicht in Reihe mehrfach verwenden?
Parallel geht das doch. Zumindest hätte ich das eben so erlebt.
HIer in Reihe:


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var.cpp 
#include "stdafx.h" 
class a1 
{ 
int blub; 
}; 
#include "a.h" 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
return 0; 
} 

a.h 
class a 
{ 
public: 
a(); 
~a(); 
a1 b1; 
}; 

a.cpp 
#include "stdafx.h" 
#include "b.h" 

b.h 
class b 
{ 
public: 
b(); 
~b(); 
a1 b1; 
}; 

b.cpp 
#include "stdafx.h"


da wirft mir der compiler glatt nen
1>c:\vartest\var\b.h(6): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'b1'
vor.
Bei strg+f7 kommt kein Fehler, nur bei f7. Kann es helfen den Unterschied zu verstehen?
Warum wirft mir der bei b einen Fehler und bei a nicht? a1 kann ich doch öfter verwenden?
Verlangt der Compiler wirklich ich soll das ';' direkt an a1 hängen? Das macht doch die Sache nicht besser.
Wofür müsste ich das parallelisieren?
Kann ich das Problem mit #define #if(n)def und #endif umgehen? Wenn ja, wie?
Bei Windef.h ist doch RECT auch so schön einfach definiert und scheinbar überall verwendbar.<-nicht ganz sicher bin

muchas gracias. Ich muss auf Parallel umstellen, wenn ich das hier nicht lösen kann. Und beim eigentlichen Project brachte das bisher oft Probleme das Parallele. Oh, reimt sich sogar ein wenig ;)
mfg

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

2

22.10.2011, 17:12

a1 muss in eine Headerdatei damit du sie in den anderen Headern einbinden und verwenden kannst. Sonst kennt der Compiler die Klasse nicht und weiß nicht was du meinst.
"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?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

22.10.2011, 17:30

Und was meinst du mit parallel? Und natürlich kann man Klassen mehrfach benutzen. Das ist ist ja der Sinn dabei, zumindest einer davon.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

4

22.10.2011, 22:16

Warum wirft mir der bei b einen Fehler und bei a nicht? a1 kann ich doch öfter verwenden?

Du benutzt a ja überhaupt nicht.
Der Compiler compiliert nur die Sourcedateien und betrachtet dafür nur die Header, die du einbindest. Also guckt er sich die a.h gar nicht erst an, weil er sie für nichts braucht.
Und wieso heißt eine KLasse bei dir a1? Die hat doch überhaupt gar nichts mit a zu tun.
Lieber dumm fragen, als dumm bleiben!

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

5

23.10.2011, 14:59

Falsch gelesen, kann gelöscht werden!

Werbeanzeige