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

07.09.2006, 17:04

.

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 17:31)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.09.2006, 19:07

warum friend?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
class Singleton
{ 
 private: 
   Singleton() { }; 
   //copy constructor auch hier rein? 

 public: 
   static Singleton& Instanz()
   { 
      static Singleton; 
      return &Singleton; 
   };
   //some data 

}; 



http://www.google.at/search?hl=de&q=singleton+%2B+c%23&meta=
erster link...

3

07.09.2006, 20:02

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 17:31)


Paul_C.

Frischling

Beiträge: 81

Wohnort: Duisburg

  • Private Nachricht senden

4

07.09.2006, 21:14

Kann dir morgen genaueres posten. Lese gerade das C# Buch von Frank Eller. (ist schon lustig, dass du dich auch mit C# beschäftigst... ;)) Da ist ein Beispiel mit einer Singelton Klasse unter C#.

Mit den DLLs bin ich mir gerade auch nicht sicher, aber ich denke schon, dass DLLs noch weitergegeben müssen, wenn diese nicht schon im Framework erhalten sind. Aber, wenn du keine eigenen geschrieben hast... oder habe ich was falsch verstanden.

MfG,
Paul.

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
public class Singleton
{
   // statisches Feld zum Speichern der Instanz

   private static Singleton instance = null;
   
   // Eigenschaft zum Erzeugen der Instanz

   public static Singleton CreateInstance
   {
      get 
      {
         if (instance == null)
            instance = new Singleton();
         return instance;
       }
    }
   
   // privater Konstruktor

   private Singleton()
   {
   // Initialisierungen

   }
}

5

08.09.2006, 13:00

Mir war zwar noch nie der Sinn hinter Singletons in C++ klar, aber hier ein C#-Singleton:

Quellcode

1
2
3
4
5
public class Singleton
{
   public static readonly SingletonInstance = new Singleton();
   private Singleton() { }
}

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

6

08.09.2006, 14:36

Unter C++ sind static Klassen ja nicht gerade die beste Lösung.
Aber unter C# hab ich den Eindruck, dass das gar keine so blöde Idee mehr ist. Denn es gibt zum einen die Möglichkeite eine gesamte Klasse als static zu deklarieren und außerdem gibt es auch einen static Konstruktor. Und der wird erst dann aufgerufen, wenn das erste mal auf die Klasse zugegriffen wird. Wenn man eh einen Meyers Singleton anwenden will kann man auf das vorzeitige freigeben des Speichers ja verzichten...
warum also nicht

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
static class MyClass
{
    static MyClass()
    {
        // Initialisierung
    }

    static int Foo(int bar)
    {
        // irgendwas machen
    }
}

Oder irre ich mich?
Ich bin auch noch nicht lange an C# dran....
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

7

09.09.2006, 13:37

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 16:23)


Paul_C.

Frischling

Beiträge: 81

Wohnort: Duisburg

  • Private Nachricht senden

8

09.09.2006, 16:37

Das Openbook habe ich auch mal kurz überflogen. Fand den Schreibstil nicht ganz so gut. ;)
Ich dacht mir nur, wenn du selber DLLs erstellt hast und die verwendest, dann muss ein Benutzer, der dein Programm nutzen will, auch deine DLL auf dem Rechner haben. Also mithilfe eines Installers mit installieren.
Ich kann dir noch das Buch von Frank Eller (bisher) empfehlen. Ist über 1000 Seiten stark. Hat viele Themen drin. Zu Beginn die Grundlagen, dann fortgeschrittene Themen, dann die Windowsprogrammierung, Datenbank, Multithreading, etc.. Kostet jedoch auch 50€.

9

10.09.2006, 14:10

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 16:23)


riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

10

12.09.2006, 16:51

Ein Beispiel zu Singleton unter C# findet ihr in der MSDN...
Hier der direkte vergleich zwischen C++ und C#

http://msdn.microsoft.com/msdnmag/issues…=&fig=true#fig1


PS: Ich weiss nicht, ob ich hier Links posten darf! Falls das jemand löscht, kann er ja den C# - Source reinkopieren.
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

Werbeanzeige