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
TigerClaw25
unregistriert
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TigerClaw25« (12.07.2017, 15:33)
Administrator
C-/C++-Quelltext |
|
1 2 3 |
char charArray1[] = "hallo"; // Variante 1 char charArray2[] = {'h', 'a', 'l', 'l', 'o', 0}; // Variante 2, bewirkt dasselbe int intArray[] = {1, 2, 3, 47, 1337}; // und so initialisiert man ein int-Array |
TigerClaw25
unregistriert
C-/C++-Quelltext |
|
1 2 |
char *pZeiger = {"Hallo"}; cout << pZeiger << endl; // hier vergesse ich immer, das Sternchen nur bei Zugriff auf Array-Element oder einem anderen einzigen Wert verwendet wird. Bei char-Arrays fällt das weg, da ich für die Ausgabe Anfangsadresse benötige; so in cout definiert |
C-/C++-Quelltext |
|
1 2 3 |
char charArray[] = "Hallo"; char *pZeiger = charArray; cout << pZeiger << endl; |
C-/C++-Quelltext |
|
1 |
int *pZeiger = new int; |
C-/C++-Quelltext |
|
1 2 |
int *pZeiger = nullptr; pZeiger = new int; |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »BlueCobold« (12.07.2017, 18:20)
TigerClaw25
unregistriert
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ja, aber darüber hinaus ist ein "Text" als C-String eben auch nichts anderes als ein char*. Du schienst etwas verblüfft zu sein, dass man einem Zeiger einen String zuweisen kann. Ein String ist aber auch nur ein eine Menge Zeichen, die über einen char* adressiert werden. Folglich sorgt man nur dafür, dass ein Zeiger auf dieselbe Adresse zeigt wie der String selbst.Dass char* nichts anderes als char[] ist, weiß ich auch. Deshalb dereferenziert man auch bei Zeigern beispielsweise mit "*" oder mit "[]".
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (13.07.2017, 11:31)
TigerClaw25
unregistriert
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 |
#ifndef TSINGLETON #define TSINGLETON template <class T> class TSingleton { protected: // Membervariablen static T *m_pSingleton; // Statisches Objekt public: // Memberfunktionen // Destruktor // virtual ~TSingleton () { } // Get // // Aufgabe: Wenn nötig, statisches Objekt erzeugen und // Zeiger darauf zurückgeben // inline static T* Get () { // Existiert schon eine Instanz? if (!m_pSingleton) m_pSingleton = new T; // Nein, dann neue Instanz erzeugen // Zeiger auf die Instanz zurückgeben return (m_pSingleton); } // Get // Statisches Objekt freigeben // static void Del () { // Gab es eine Instanz? if (m_pSingleton) { delete (m_pSingleton); // Ja, dann freigeben m_pSingleton = NULL; // und Zeiger auf NULL setzen } } // Del }; // Die statische Variable erzeugen // template <class T> T* TSingleton<T>::m_pSingleton = 0; #endif |
C-/C++-Quelltext |
|
1 2 |
// Eine Statusmeldung ins Logfile schreiben CLogfile::Get()->Statusmeldung (); |
C-/C++-Quelltext |
|
1 2 |
CLogfile::Get(); // Einfach aufrufen der Funktion und erzeugen der Instanz m_pSingleton->Statusmeldung (); // Singleton ist ja dann public |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
TigerClaw25
unregistriert
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige