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

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

41

11.05.2006, 19:14

Nope
C++ ist eine erweiterung von C :)
C ist eine ältere Sprache mit der auch Windows geschrieben wurde ;)
C++ ist eigentlich C nur mit erweiterungen wie Klassen, Polymorphie usw ;)

Wenn man C kann dann ist C++ nur ein kleines Problem :)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

42

11.05.2006, 19:17

C ist eine Untermenge von C++. Alles was du mit C machen kannst kannnst du auch mit C++ machen. C++ ist aber typsicherer und hat OOP, was heutzutage bei der gigantischen Software unabdingbar ist.

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

43

11.05.2006, 21:08

Okay hab jetzt eine Funktionierende Log Klasse :)

Hier mal der Code:

CLog.h

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef CLog_H
#define CLog_H

// Standard-Includes

#include <iostream>
#include <fstream>

/*
=========================================================================================
==Diese Klasse soll alle Fehler aufzeichnen!!!
==Das Funktioniert natürlich über ofstream!!!
=========================================================================================
*/

//Template für die Ausgaben Typen!

template <typename T>
class CLog
{
public:
     
CLog(char* pFileName);
~CLog();
     
//Standart Start und End Logs schreiben:

void LogStart();
void LogEnd();

void MakeEntry(T LogEntry);

private:

//Name für die Datei:

// char* m_pFileName;


std::ofstream Log;
//ofstream Objekt für die Klasse:

//static ofstream Log;

};

template<typename T>
CLog<T>::CLog(char* pFileName="Log.txt")
{
    Log.open(pFileName, std::ios::trunc);
}

template<typename T>
CLog<T>::~CLog()
{
    Log.close();
}

template<typename T>
void CLog<T>::LogStart()
{
 MakeEntry("--Log Beginnt!--");
}

template<typename T>
void CLog<T>::MakeEntry(T LogEntry)
{
 Log<<LogEntry<<"\n";
}

template<typename T>
void CLog<T>::LogEnd()
{
 MakeEntry("--Log Beendet!--");
}

#endif //CLog_H


Hoffe der Code hat nicht viele fehler :P
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

44

11.05.2006, 21:45

wenn man Fragen darf: Weißt du was templates sind?
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

45

11.05.2006, 22:05

Jopp aber ich sollte nochmal richtig nachlesen ;D ich hab ne weile keine mehr genutzt und habs auch noch nicht so gefestigt ;)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

46

11.05.2006, 22:10

Nein du weisst es nicht. Sowas: char* pFileName="Log.txt" ist tödlich, wech damit!

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

47

11.05.2006, 22:20

Hab ich schon geändert aber nur in der C version :P
Die C++ version wird morgen in ruhe bearbeitet :)

Aber danke für die Kritik :)

Hier mal die C version:

Log.h

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef CLog_H
#define CLog_H

// Standard-Includes
#include <iostream>
#include <fstream>

/*
=========================================================================================
==Logsystem
==Hier mit werden alle Fehler geloggt!!!
=========================================================================================
*/

//Standart Start und End Logs schreiben:
void LogStart();
void LogEnd();

template <typename T>
void MakeEntry(T Entry);


#endif //CLog_H



Log.cpp

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Log.h"

using std::endl;

std::ofstream Log("Log.txt");

void LogStart()
{
 MakeEntry("--Log Beginnt!--");
}

template <typename T>
void MakeEntry(T Entry)
{
 Log<<Entry<<endl;
}

void LogEnd()
{
 MakeEntry("--Log Beendet!--");
}


Ich muss nur noch dafür sorgen das die Templates auch bei anderen Typen wie string usw gehen :) den das funk noch nicht ganz!!!
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

48

11.05.2006, 22:29

kannst du mir mal verraten wozu du da ein Template brauchst?

für sowas braucht man templates:
-> Listen (verschiedener Typen)
-> Bäume
-> Speicherklassen

z.B.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
template <class Type>
class List
{
  public: 
    void AddEntry(T Entry);
    ....
}


 void template <class Type> List::AddEntry(T Entry)
{
   ...
}

@ext: Nur zur Veranschaulichung da, keine Garantie auf Korrektheit und Ausführbarkeit ;)

So braucht man den ganzen Kram NICHT für Integers, floats, Strings u.s.w. immer nochmal zu schreiben, da die Schablone oben definiert ist (vom Programmierer) und bei der Benutzung dann eine Klasse List erzeugt wird.

T-VIRUS

Alter Hase

  • »T-VIRUS« ist der Autor dieses Themas

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

49

12.05.2006, 08:06

Ich weiß ja wozu man sie nutzt(Anfänglich) aber ich verwende sie immer zuselten :( Ich brauche sie um unterschiedliche Typen(int, float usw in die Datei auszugeben.

Damit kann ich mir das Überladen komplett sparen ;)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

50

12.05.2006, 08:35

Ja.... ok ein Argument, aber wenn du templates in ne DLL packst geht das mit der Schablone nicht mehr und da ich glaube das du ein Log nicht >einfach mal so< schreibst, wäre es vllt. dann doch besser void* zu nehmen oder alles einzeln.

Werbeanzeige