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

1

24.10.2014, 19:40

Ist es normal dass eine Fehlermeldung kommt? "Singletons"

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
[code]#ifndef TSINGELETON
#define TSINGELETOn

template <class T>
class TSingelton
{
protected:
    static T *m_pSingelton;//Ein Statisches Objekt erzeugen

public:
    
    //virtual ~Singeltob (Destructor(ohne Parameter)
    virtual ~TSingelton()
    {
    }

    //iline static T* "Get" 
    //(Aufgbe: Prüft ob es eine Instanz gibt wenn nicht dass wird eine neue erstellt)
    inline static T* Get()
    {
        if (!m_pSingelton)
        {
            m_pSingelton = new T;
        }
    }

    //static "Del" (Aufgbe: statisches objekt frigeben)
    static void Del()
    {
        if(m_pSingelton)
        {
            delete (m_pSingelton);
            m_pSingelton = NULL;
        }
    }
};
template <class T>
T* TSingelton<T>::m_pSingelton =0;

#endif  TSINGELETON


Wie die Überschrift schonn sagt kommen Fehlermeldungen.
Es soll das Listing 8.6 abgetippt darstellen das quasi als ein verbindungs stück für andere Singeltonsklassen dienen soll

Wenn ich dass Listing starte kommt folgende Fehlermeldung:
1.Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".
C:\Users\Timo\Desktop\Visual Studio\Projekte\Aufgabe 5.11\MSVCRTD.lib(crtexe.obj) Aufgabe 5.11

2.Fehler 2 error LNK1120: 1 nicht aufgelöste Externe C:\Users\Timo\Desktop\Visual Studio\Projekte\Aufgabe 5.11\Debug\Aufgabe 5.11.exe Aufgabe 5.11
Hinweis: grobe Rechtschreibfehler im Code sind beim Posten passiert(hab noch probleme mit den Posten)

2

24.10.2014, 19:51

Der linker sagt dir, dass du irgendwo die main-funktion definieren sollst.

Techie

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

3

24.10.2014, 20:20

Du hast wahrscheinlich ein main statt WinMain genommen, bzw. ein Windows Projekt statt Konsolenprojekt erstellt ;)
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

4

24.10.2014, 23:04

Ich habe auch mal eine main function erstellt und die Fehlermeldung war die selbe.
Auserdem hab ich immer nur dass eine Projekt benuzt und es hat immer getan.

5

24.10.2014, 23:14

Dann wird die Datei, in der die main funktion definiert ist, nicht mitgelinkt.

6

25.10.2014, 00:09

Fang das Buch von vorn an, tipp diesmal aber nichts ab. Da lernst du dann vielleicht auch was.

MfG
Check

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

25.10.2014, 09:44

@Tim:
Du hast den Code ganz schlampig runtergetippt. Genauso schlampig wie du auch deine Beiträge schreibst, nur dass der Compiler noch viel nachtragender ist als ein menschlicher Leser.
Überall finden sich Tippfehler, einer davon hat sogar eine Auswirkung auf das Programm.
In deinem Code habe ich 4 verschiedene Schreibweisen von "Singleton" gefunden:

1. "SINGELETON"
2. "SINGELETOn"
3. "Singeltob"
4. "Singelton"

Alle sind falsch!
Die richtige Schreibweise "Singleton" kommt gar nicht vor. :(

Die Vermischung von 1. und 2. führt dazu, dass dein #ifndef immer greift und der Include-Guard nicht funktioniert.

8

25.10.2014, 11:15

1.Durchs abtippen lern ich aber besser und bei Microsoft visual Studio war auch nicks rot markiert.
2.Deshalb dachte ich auch dass ich keinen tippfehler haben kann.
3.Du bist wie unser Deutschlehrer(übertreib nicht, wir sind ja nicht auf Youtube wo alle sofort aggressiv werden) :pinch:
4.Aber danke an alle.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hobby_tim_C++« (25.10.2014, 11:29)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

25.10.2014, 11:49

Du bist wie unser Deutschlehrer
Der muss dann wohl offenbar auch Recht haben. Korrekte Schreibweisen sind nun mal wichtig für Programmierung. Du kannst vielleicht einen Brief oder Aufsatz mit Rechtschreibfehlern verfassen, ein Programm aber nicht.
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]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

25.10.2014, 11:50

Ich glaube, dass Abtippen eine nicht besonders zielführende Lernmethode ist.
Anstatt den Code wirklich zu verstehen bist du mehr mit dem Tippen selbst beschäftigt.
Ich denke es macht mehr Sinn den Code nicht abzutippen sondern die Zeit lieber überwiegend in das Verständnis des Codes zu investieren. Dazu gehört das logische Verstehen aber auch eigene Experimente damit, oder Aufgaben im Buch, falls es das in dem Buch gibt. Nur wenn du mit der Programmiersprache wirklich arbeitest(≠ abtippen), wirst du sie irgendwann selbstständig verwenden können. Praktische Übung ist (fast) alles, besonders am Anfang.

Werbeanzeige