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

Sheddex

unregistriert

11

29.01.2006, 20:45

Ich weiß ja selbst nicht was das bringt und was using namespace std ist, aber egal^^
Irgenwo wurde das hier im Forum erwähnt... :)

Phili

unregistriert

12

30.01.2006, 14:12

Was ist eigentlich der Vorteil von 'std::' statt 'using namespace std' ??? ??? ??? ??? ??? ???

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

13

30.01.2006, 14:33

na namespaces sind doch dafür da namensdoppelungen zu verhindern. wenn du jetzt aber 2 namespaces benutzt die doch wieder einen gleichen bezeichner verwenden gibts wieder probleme. bei std:: kann das nicht passieren.

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

14

30.01.2006, 16:13

Nein,
da kann man doch

C-/C++-Quelltext

1
using namespace std;

schreiben.
Und wenn man dann den anderen braucht,
setzt man dort ein

C-/C++-Quelltext

1
Namespace::

Davor,
ist doch ganz einfach oder nicht? ???

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

15

30.01.2006, 16:28

@Phili:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
#include <iostream> /* Deklaration von std::cout */
#include <myio> /* Deklaration von cout */

using namespace std;

int main()
{
  cout << "hallo";
  return;
}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <iostream> /* Deklaration von std::cout */
#include <myio> /* Deklaration von cout */

int main()
{
  cout << "hallo";
  return;
}


Im habe mir eine eigene Ausgaberoutine gemacht, die malt von mir aus ein Fenster um den Text, jedenfalls gibt die auch was aus. Beide Programme sind fast gleich, aber total verschieden. Bei ersten Programm wird cout aus std:: genommen, beim zweiten mein definiertes.

Wenn man jetzt std:: einfach davorschreibt, weiss man was man will und minimiert so Fehler. Das nachfolgende Programmm würde mit using sehr verwirrend, bzw. sogar unmgl. wegen der doppeltdefinition von cout.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <iostream>
#include <myio>

int main()
{
  std::cout << "normale ausgabe" << std::endl;
  cout << "jetzt mit Fenster" << std::endl;
}

Phili

unregistriert

16

30.01.2006, 18:27

@Koschka

Aber abgesehen von den Doppelbenennungen macht es keinen Unterschied. Nicht irgendwie speichersparend oder so?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

17

30.01.2006, 19:31

Wenn man Doppelbelegungen hat ist das schon schlimm genung, den dann gibts nen Fehler. Wenn cout (definiert in myio) und cout (definiert in std::) so verwendet werden

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include <iostream>
#include <myio>

using namespace std;

int main()
{
   cout << "hallo";
}


Wird es entweder einen Fehler geben (noch erträglich), oder es wird iirgendetwas gemacht was undefinierbar ist. Solche Fehler sind richtig böse, un deswegen ist using std auch richtig böse ^^. Mit Speicher hat das nix zu tun, es geht einfach nur um Namenskollisionen.

Werbeanzeige