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

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

11

03.01.2009, 19:22

Gut, ich habe etwas übertrieben, aber ich muss hier mal Hanse zustimmen. Man sollte genau das machen, was einem effektiv erscheint, auch wenn die allgemeine Meinung ist, dass das schlechter Stil ist. Wenn man nicht selber gemerkt hat, dass eine gewissen Vorgehensweise auch langfristig keine Nachteile bringt, sollte man es ruhig tun.

Ich hab persönlich die Erfahrung gemacht, dass ständig std:: zu schreiben mehr Tipparbeit bedeutet und bisher noch nicht geholfen hat, Namensdoppelheiten aufzulösen (oder sonst irgendwie). Aber letztlich sind die 5 Buchstaben auch nicht die Welt, also warum nicht. Aber bei Namespaces mit längeren Namen würd ich definitiv using verwenden, wenn es Sinn macht.

@Nexus
Sorry, aber ich hab keine Ahnung was ADNL ist (Google auch nicht) und dein Beispiel versteh ich auch nicht. Aber using namespace bricht nicht das Konzept, Mehrdeutigkeiten werden immer noch erkannt und man kann den Namespace immer noch explizit angeben, um ein Dropdown Feld zu bekommen.

Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

12

03.01.2009, 19:29

(Die E-Mail Benachrichtigung ist übrigens kaputt. Die E-Mail kommt entweder sehr spät, oder (wie hier) garnicht)
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

13

04.01.2009, 00:49

Bei langen namespaces (z.b. boost::filesystem) kannst du sie auch in einen anderen Namespace verlegen:

C-/C++-Quelltext

1
namespace fs = boost::filesystem;


So spart man sich Tipparbeit.

Socke

Anonymous

unregistriert

14

04.01.2009, 11:26

Re: Using namespace std; oder std::

Zitat von »"Porates"«

Die Überschrift beschreibt auch gleich die Frage.

Mir wurde gesagt das ich mir using namespace std; abgewöhnen soll?
Aus welchem Grund. Möchte ich hier noch Fragen :D



Ich machs immer so:

Listing 1.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include "Listing 2.hpp"

using namespace std;

int main (void)
{
    string STR = "Hello World!\n";
    Listing2 (STR);
}


Wie man hier schon in der 2ten Zeile sieht steht da
#include <string>
Das ermölicht, dass man nicht immer "std::string" schreibt sondern einfach "string".
Das "void" in der main-Parameterliste hat damit nichts zu tun, nur dass es ein paar KB spart. In einer ".cpp"-Datei soll man meiner Meinung nach immer (!) einen "using namespace std;" dabei schreiben, da es meiner Meinung nach die einfachste Lösung ist. In einer ".hpp"-Datei, soll man immer alles lieber mit "std::" schreiben, da es sonst manchmal Überraschungen in der Ausführung kommen...
Hier mal die .hpp-Datei:

Listing 2.hpp

C-/C++-Quelltext

1
2
#include <iostream>
void Listing2 (std::string STR);


Wie man hier sieht wiird da "std::string" verwendet. Was auch besser ist!
Nun noch das Listing 3:

Listing 3.hpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "Listing 2.hpp"
#include <string>

using namespace std;

void Listing2 (string STR)
{
    cout << STR;
}


Hier verwende ich wieder normal das "using namespace std;".
Viele schreiben ohne "using namespace std;", weil sie es als besseren
"Code-Stil" finden. Ich finde jedoch, dass man am Anfang immer das dabei schreiben sollte, weil es eine massive Code-Erleichterung ist.

Hier noch was zum Zeitvertreiben:^^

C-/C++-Quelltext

1
2
3
std::cout
std::cin
std::string


MfG,
Spiri

Sry wegen meiner Grammatik...^^
Spiri = IT/LUX^^

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

04.01.2009, 11:38

Zitat von »"Spiri"«


Wie man hier schon in der 2ten Zeile sieht steht da
#include <string>
Das ermölicht, dass man nicht immer "std::string" schreibt sondern einfach "string".


Seit wann ist das so? Wäre mir neu...

Zitat von »"Spiri"«


Das "void" in der main-Parameterliste hat damit nichts zu tun, nur dass es ein paar KB spart.


Abgesehen, dass das ja garnicht zum Thema gehört. Du hättest das void auch einfach weg lassen können.
@D13_Dreinig

Anonymous

unregistriert

16

04.01.2009, 11:40

Spiri
Das ist mal totaler Mist, wenn du selber keine Ahnung hast, poste erst garnicht in so ein Thema.

Zitat

Das "void" in der main-Parameterliste hat damit nichts zu tun, nur dass es ein paar KB spart.

He? 'void' als eigenstehender Datentyp als Parameter in einer Funktion gibt dem Compiler nur zu wissen, dass es sich um eine leere Funktionsdeklarierung handelt. Sicherlich wird auch minimaler Speicher optimiert aber nicht ein paar "KB". Ganz davon abgesehen das du überhaupt weisst, was das ist...


Ich kann nur den Post von ul zitieren:

Zitat

Ein "using namespace" sollte man immer sein lassen, da dies Mehrdeutigkeiten hervorrufen kann, dies ist auch der Grund wieso man es nur lokal (in Source-Dateien) machen sollte oder in einem Funktionsrumpf. Ist sowas in Header-Dateien, wird dieses "using namespace" überall "weitervererbt" in andere Dateien was Folgefehler hervorrufen kann/wird.

Anonymous

unregistriert

17

04.01.2009, 11:43

Zitat von »"Coders-Square"«

Spiri
Das ist mal totaler Mist, wenn du selber keine Ahnung hast, poste erst garnicht in so ein Thema.


Bevor wir hier anfangen zu streiten, sag' mir lieber was Deiner Meinung nach totaler Mist ist^^

Anonymous

unregistriert

18

04.01.2009, 11:47

Dein ganzer Post.

Anonymous

unregistriert

19

04.01.2009, 11:53

Zitat von »"Coders-Square"«

Dein ganzer Post.


Okee, Okee,beruhige dich ich habs ja nur gut gemein.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

20

04.01.2009, 13:01

Das kann man auch freundlicher sagen Coders-Square.

Werbeanzeige