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

Meandor

Frischling

  • »Meandor« ist der Autor dieses Themas

Beiträge: 55

Wohnort: Oberhausen

Beruf: Student

  • Private Nachricht senden

1

05.01.2006, 17:31

Template Klassen

Erst einmal alles Gute dem Forum zum Neuen Jahr!!

So jetzt meine Frage:
Zum Thema im Kapiel 8.3.2 Template Klassen:

Ersteinmal lassen sich beide Quelltexte von meinem Compiler übersetzen und beide funktionieren auch so wie sie sollen.

Mir leuchtet ja auch ein das die 2. Alternative (Listing 8.5) wesentlich besser ist als (Listing 8.4), da man ja selten seine Klassen in eine Datei schreibt in der auch die main() Funktion ist.

Also ist die Idee die Template Klasse über eine Header-Datei einzubinden nicht schlecht. (Auch wenn die Funktionsdefinition nicht in seperater cpp-Datei ist)

Jetzt fällt mir aber (als C++ Laie) auf, dass beim einbinden von #include "Raumschiff.h"

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
int main()
{
    CRaumschiff<int> Spieler;

    Spieler.Setze_Geschwindigkeit(1500); //wurde leider manuell geschrieben

    Spieler.Zeige_Daten(); //hier auch

    
    return 0;
}


ich in der main() nicht mehr die Möglichkeiten habe mit dem Punkt Operator z.B. Spieler.Zeige_Daten() auf die vom Compiler vorgeschlagenen Funktion zuzugreifen.
Also ich schreibe Spieler. (punkt) und dann zeigt die Entwicklungsumgebung mir keine Vorschläge mehr an. Woran liegt das??
Das ist doch sehr schade wenn man diese Funktions-Vorschläge nicht mehr sieht. Dann muss man ja ständig nach schauen was die Template-Klasse in der Header Datei alles so kann und vertippt sich wahrscheinlich noch.

Muss ich was an der Compiler Einstellung ändern. Ich benutzte VC++ 6.0 von der Buch CD!

Oder liegt das daran das die Funktionsdefinitionen mit in der Header Datei sind?

Vielleicht hat ja einer mal das Buch vom Heiko und kennt mein Problem.

Mit bestem Gruß
Jens

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

2

05.01.2006, 17:34

Welche nutzt du?

Im allgemeinen unterstützen die Umgebungen templates so leider nicht, aber wenn du nicht die ganz neue express version benutzt, nimm visual assist, dann werden sie meistens angezeigt. Es ist kein fehler das sie nicht angezeigt werden, die funktionen gibt es trotzdem
Was es alles gibt, das ich nich brauche - Aristoteles

Meandor

Frischling

  • »Meandor« ist der Autor dieses Themas

Beiträge: 55

Wohnort: Oberhausen

Beruf: Student

  • Private Nachricht senden

3

05.01.2006, 17:45

Sag ich doch die von der CD Version Visual C++ 6.0.

Das es die Funktionen ja gibt weiß ich sonst würden die Ausgaben nicht auf dem Bildschirm erscheinen bzw. der Compiler würde meckern.

Oder liegt das vielleicht an der Autoren Version von dem Visual C++ 6.0??
Oder brauche ich eine andere Einstellung?

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

4

05.01.2006, 17:50

die werden nie angezeigt, nur WENN du visual assist benutzt lernt er die funktionen nach einmaliger anwendung sonst geht es nicht, du musst einfach blind programmieren
Was es alles gibt, das ich nich brauche - Aristoteles

Meandor

Frischling

  • »Meandor« ist der Autor dieses Themas

Beiträge: 55

Wohnort: Oberhausen

Beruf: Student

  • Private Nachricht senden

5

05.01.2006, 18:09

boa ist das wahr das ist ja echt blöd! Und wo kriege ich diesen visual assist her? Kostet der was oder ist das irgendeine Einstellung mit dem VC++ 6.0 ich sehe schon diese Entwicklungsumgebung ist nicht wirklich die beste oder??

Auf jedenfall mal besten Dank! Ich dachte nähmlich zuerst ich hätte was falsch gemacht!

Gruß Jens

Werbeanzeige