Grundlagen d. Informatik u. Programmierung 2: 1.3 Namensräume (SoSe 2020) Visual Computing WH https://www.youtube.com/watch?v=nrKzj-D41PE Transkript (automatisch erstellt) 0:01 [Musik] sagt zusammen da der einführung wird kurz wir gucken 0:09 auf namens freunde dürfen sie mal mit dem blinker folgenden code haben eine globale variable integral gleich 1 und in der mail funktion legen wir uns ein 0:22 interview gleich zwei an und dann sagen wir dem programm geht mir doch bitte mal das aus was wird unsere aufgabe sein wie gesagt video kurz anhalten überlegen 0:37 danach ausprobieren das gab es zwei warum nur das lokale dieses hier gleich zwei verdeckt das global a was passiert hier nicht diese zahl ist 0:55 dazugekommen auch für den kurz überlegen bitte die ausgabe ist 1 warum der scope resolution operator dieser punkt hier ermöglicht 1:12 den zugriff auf verdeckten abend wenn ich den scope nur passend aufrufe der vollständigkeit halber das hier ist das globale das hier ist dass luca na so 1:22 kommen die beiden ausgaben hier an der stelle zu stande das hilft mir dann auch bei namens konflikt aber erstmal wieder entstehen 1:31 namens konflikte konnten wir uns mal an in der atp ist eine funktion deklariert do something was auch nur die tut die implementierung finden sie in einer bp 1:43 wird natürlich erst mal da hätte angebunden und dann die funktion do something implementiert es ist völlig egal was sie tut für dieses beispiel 1:53 wichtig die funktion wird hier definiert oder implementiert dann gibt es ein paar aus hänner und cpp datei die im endeffekt nichts anderes 2:05 machen als die gleiche funktion you something zu deklarieren und der funktion auch hier ein inhalt zu geben möglicherweise einen anderen dann 2:16 gibt es wieder die neue funktion beide händler werden inkludiert vor der mine funktion damit ich aus der mine funktion auf vaduz am pfingst zugreifen kann 2:24 was wird passieren wenn sie versuchen dieses beispiel zu übersetzen wir sind besetzen ist nicht das problem der linke wird in aufs dach steigen und 2:34 zwar an dieser stelle er wird ihnen hier nämlich mit einem linker fehler aufs dach steigen der sagt dass sie an dublin zimmer haben 2:43 was ist hier doppelt klar dass sowohl durch anfängen und zwar einmal implementiert in acp einmal implementiert den bcp und der linke 2:53 würde das jetzt zweimal in seinem wohl tabelle eintragen müssen und sagte das geht nicht das habe ich ja schon ganz zu schweigen davon dass ich an der stelle 3:00 wo sie das sowohl benutzen das problem hätten welches hätten sie denn gern hier überhaupt gar nicht klar und da müssen wir was tun und da hilft 3:10 uns auch der scope resolution nach beratung wie kann er uns helfen er kann uns nur helfen wenn die namens wollen wir 3:18 einführen wenn wir tatsächlich einen benannten scope schaffen den wir auflösen können sonst funktioniert so sie können namensräume mit dem namen 3:29 anlegen mit dem schlüsselwort namespace den amtsgerichten nahmen einen sinnvollen namen der nach möglichkeit vielleicht sogar mit dem dateinamen 3:38 zusammenhängt natürlich dann in java hier einmal b und in ein paar von geschweißten klammern steht dann alles was in diesem namensraum stattfindet das 3:51 ist einmal im namensraum die funktion do something die wird deklariert und einmal im namensraum b die funktion do something die deklariert wird eine 4:01 implementierung könnte ich jetzt auch mit dem namespace arbeiten schöner finde ich allerdings zu schreiben doppelpunkt doping und b doppelpunkt 4:14 zusammen fingern ist das hier ein ganz kleines bisschen direkter geschrieben was ich meine und wenn man ein bisschen technischer 4:21 hingucken oder technische hre spricht dafür verwenden habe ich hier eine funktions definition mit hilfe sogenannter voll qualifizierter 4:30 funktions namen voll qualifiziert deshalb durch den kompletten namensraum in die funktion leber lebt mit der zuschreibung damit wird es dann deutlich 4:40 eindeutiger ich kann es nutzen ich kann beide helfer inkludieren ich kann in der mail funktion ganz eindeutig schreiben bitte nimm aus dem namensraum 4:49 die funktion do something team aus dem namensformen die funktion do something auch an der stelle sollte es überhaupt kein problem sein ich rufe mit voll 4:58 qualifizierten funktions namen auf und der lenker kriegt an keiner stelle ein problem weder an der stelle der funktions definition dass er sich 5:06 doppelte symbole an nicht erlegt sich ja zwei verschiedene an einmal durch something im namensraum und einmal durchs empfing im namensraum b sind zwei 5:14 verschiedene symbole und beim aufrufen nutze ich genau diesen beiden verschiedenen symbole und gebe den den vollen namen und dazu benutze ich hier 5:26 an dieser stelle den scope resolution operator die standard bibliothek stellen ja an namensraum std standard zur verfügung es sinnvoll benannt er hängt 5:42 ja mit derstandard bibliothek zusammen deshalb abgekürzt std sie wollen wir nicht jedes mal standard library davor schwan das wäre ein bisschen viel weil 5:50 sie das häufig verwenden deshalb war ich das spd davor zu stören da stecken etliche objekte funktionen etc drin was das alles ist etwas objekte 5:59 sind das alles gucken und später an hier gucken wir uns den namensraum an wie wir ihn benutzen variante eins kennen sie aus dem hello 6:08 world beispiel in der stadtbibliothek den charakter out std doppelpunkt scope resolution charakter auf und schieben da rein 6:19 das war das beispiel aus dem letzten video variante zwei sieht so aus cowens erstmal den unteren teil die mehr in 6:31 funktion an hier benutze ich immer noch den charakter auf ich schreibe aber nicht mehr dass es den doppelpunkt doppelpunkt davor 6:37 warum kann ich das tun das kann ich deshalb tun weil ich den compiler vorher erklärt habe dass ich im folgenden verwende using den scd charakter und den 6:53 spd entlein daher mache ich einzelne von qualifizierter objekte oder namen verfügbar 7:01 um sie später zu benutzen um den compiler die natürlich dann richtig beraten zu lassen 7:10 die dritte variante die sie häufig sehen leider muss ich sagen ist so etwas entsteht vorne in der erklärung für den compiler using namespace std was 7:22 passiert da er wird der komplette inhalt des namensraums std den compiler bekannt gemacht das heißt im endeffekt geben sie ihm ein ganz dickes buch mit zeigt dass 7:33 er ab da kennt und dann können sie das genauso wie hier verwenden das ist schlecht sie blasen den den compiler bekannten namens frau oder der 7:44 menge an den compiler bekannten begriffen unnötig auf und handeln sich möglicherweise auch da wieder namens konflikt 7:51 diese überhaupt gar nicht gedacht haben dass irgendeine obskure funktion im namensraum spd gibt die sie aber unter anderem namen dann schon benutzen wollen 7:59 und dann haben sie wieder das gleiche problem dass sie mich so ein lapidar hin geschrieben das nun in halt alles aus der stadtbibliothek sich dann wieder die 8:07 probleme an handeln die sie eigentlich vermeiden wurden nächster punkt warum ich das hier schöner finde sie schreiben ganz klar 8:16 hin was sie verwenden wollen und erklären damit ihnen selber in 14 tagen oder aber auch ihren programmier- kollegen was sie eigentlich vorhaben das 8:26 hier steht nämlich direkt am anfang und dann erklären sie direkt naja ich brauche ihn hätte ausgeben also wenn ich wohl irgendwas mit euro machen in 8:32 mannheim und ich hätte gerne eine kurz schreibweise verwendet für den charakter output und für das ende klein und dann 8:40 sieht man direkt so ein bisschen als dokumentation was ich möglicherweise in dem programm als ja was ich im programm tun möchte und was ich mir als kurz 8:50 schreibweisen was haben uns angeguckt in dieser kurzen runde werden uns die namensauflösung oder die scope resolution mit dem 8:59 doppelten doppelpunkt angeguckt wir haben uns an der curanis konflikte herkommen und wie uns der scope resolution operator helfen kann und wenn 9:07 uns ein anderes räume inklusive den namensformen scd angeguckt [Musik]