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

11

08.01.2016, 21:41

...DU verlässt den nicht, dein Programm tut das...

C-/C++-Quelltext

1
2
3
4
5
int a = 0;
{
int b = 1;
}
b = a; //Will it compile!?


MfG
Check

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

08.01.2016, 21:45

Dieses Objekt wird aus dem Stack genommen (...), sobald du den Scope verlässt.
Nope. Theoretisch ja. Praktisch nein. Praktisch wird erst beim Verlassen der jeweiligen Funktion/Methode der Speicher "freigegeben" (der Stack ist immer gleich groß, nur der Stack-Pointer wandert und das tut er erst beim Verlassen der Funktion/Methode). Entsprechende Destruktoren werden natürlich sofort gerufen, wenn die Variable out of scope geht.
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]

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

13

08.01.2016, 21:48

@OP:
Du siehst, eine Theoriestunde lohnt sich bei dem Thema. :)
WIP Website: kevinheese.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KeksX« (08.01.2016, 21:55)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

08.01.2016, 22:39

Definitiv. Wie bei so vielen Themen. IF und FOR sind nicht alles, da stecken überall fiese Details dahinter.
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]

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

15

09.01.2016, 13:47

Definitiv. Wie bei so vielen Themen. IF und FOR sind nicht alles, da stecken überall fiese Details dahinter.

Die berühmte If-Schleife. Die macht mir zu schaffen.
WIP Website: kevinheese.de

16

09.01.2016, 20:20

Habe es hinbekommen habe mir das Thema Scope nochmal genauer angeschaut :)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
void Ball:: Render(RenderWindow &Window) {

    if (IsAlive == true) {

        Window.draw(Rect);

    }

}

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

17

09.01.2016, 22:53

In dem Code wird nicht ein DTor aufgerufen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

18

10.01.2016, 00:13

Soll ich in Manuel aufrufen ?

C-/C++-Quelltext

1
Ball.~Ball();

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

19

10.01.2016, 00:54

Nein. Ich habe dich lediglich darauf hingewiesen, dass du in deinem Code nicht eine Stelle hast, in der aufgrund von Scopes ein DTor aufgerufen wird.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

20

12.01.2016, 20:10

Ich habe im Buch von Heiko Kalista nach Antworten gesucht und da ist mir die Singleton Klasse über den weg gelaufen :search: Wäre es auch nicht damit möglich oder eher gesagt auch machbar ?

TSingleton.hpp

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
#pragma once

template<typename T>
class TSingleton {

protected:
    static T *Singleton;

public:

    virtual ~TSingleton() {



    }

    inline static T* Get() {

        if (!Singleton) {

            Singleton = new T;

        }

        return Singleton;
    }

    static void Del() {

        if (Singleton) {

            delete Singleton;

        }

    }

};

template<typename T>
T* TSingleton<T>::Singleton = 0;

Werbeanzeige