implicit-conversion

___ qstnhdr ___ Warum ist die Adresse dieser flüchtigen Variablen immer bei 1? ___ answer8239294 ___

iostreams werden die meisten Zeiger auf %code% für die Anzeige darstellen - aber für %code% Zeiger existiert keine Konvertierung. Daher fällt C ++ auf die implizite Umwandlung in %code% zurück. Cast to %code% explizit, wenn Sie die Adresse ausdrucken möchten:

%Vor%     
___ answer39773280 ___

Dies liegt daran, dass es für %code% keine Überladung gibt, die einen Zeiger auf %code% nimmt, und es keine Zeigerkonvertierung gibt, die sie erfüllen könnte.

Gemäß dem C ++ - Standard

  

für jeden Typ %code% , Pointer auf %code% , Pointer auf %code% und Pointer auf %code% werden als unterschiedliche Parameter angesehen, ebenso wie der Verweis auf %code% , der Verweis auf %code% und der Verweis zu %code% .

Operator %code% hat keine Überladung für Zeiger auf nicht-statische Elemente , Zeiger auf flüchtige Zeiger oder Funktionszeiger, also versucht die Ausgabe solcher Objekte die implizite Konvertierung in %code% .

    
___ tag123implicitumversion ___ Konvertieren eines Objekts, einer Variablen oder eines Werts von einem Typ in einen anderen, um eine Typeinschränkung zu erfüllen, ohne diese Konvertierung explizit über die Sprachsyntax anzufordern. ___ qstntxt ___

Ich wollte die Adresse meiner Variablen überprüfen

%Vor%

Aber es sagt immer, dass x an Adresse 1 ist. Mache ich etwas falsch?

    
___ tag123iostream ___ Die C ++ iostream-Bibliothek ist eine objektorientierte Bibliothek, die über Streams Ein- und Ausgabefunktionen bereitstellt. Die Iostreams-Klassen unterstützen typsichere I / O-Typen und können zur Unterstützung benutzerdefinierter Typen durch Überladen der Operatoren >> und << erweitert werden. ___ answer8240080 ___

Es gibt ein %code% für %code% , aber es gibt kein %code% für %code% , und die implizite Konvertierung wird %code% nicht entfernen (es wird auch %code% nicht entfernen).

Wie GMan sagt, sollte die cv-Qualifikation des angegebenen Typs für das Drucken einer Adresse irrelevant sein. Vielleicht sollte die in 27.7.3.6.2 definierte Überlast %code% sein, ich kann keinen Nachteil sofort sehen. Aber es ist nicht.

%Vor%

Ausgabe:

%Vor%     
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123memoryaddress ___ Eine Nummer, die einen bestimmten Ort im Computerspeicher angibt. Kann auch auf den Zugriff auf diese Adressen im Speicher verweisen. ___ tag123cout ___ std :: cout ist das globale Stream-Objekt, das von der C ++ - Standardbibliothek zum Schreiben in den Standard-Ausgabestream bereitgestellt wird. ___
2
Antworten

C # fügt implizite Konvertierungen zu bestehenden Typen hinzu

Gibt es in C # eine Möglichkeit, implizite Konvertierungen zu bereits in anderen Assemblys definierten Typen hinzuzufügen? Wenn ich zum Beispiel zwei verschiedene Assemblies verwende, die jeweils ihr eigenes Vector3 struct bereitstellen...
21.01.2011, 02:22
2
Antworten

impliziter Operator für generische Typen

Stimmt etwas nicht mit der Verwendung eines impliziten Operators wie dem folgenden: %Vor% Ich dachte, ich könnte so eine Instanz des Objekts als Werttyp behandeln, aber da ich noch nie ein Beispiel dafür gesehen habe, dachte ich, dass es vie...
29.09.2010, 15:32
2
Antworten

Warum die implizite Konvertierung in Listen nicht funktioniert?

Könnte jemand eine kurze Erklärung geben, warum die implizite Konvertierung in diesen Fällen nicht funktioniert? Danke. %Vor%     
18.07.2011, 06:13
2
Antworten

Implizite Konvertierung: const Referenz vs. nicht konstante Referenz vs. Nicht-Referenz

Betrachten Sie diesen Code, %Vor% Dies kompiliert gut , läuft gut. Aber wenn ich f(B) in f(B&) ändere, kompiliert nicht . Wenn ich f(const B&) schreibe, funktioniert es wieder gut , läuft gut. Warum ist der Grund und die...
16.01.2011, 08:09
1
Antwort

scala Quelle implizite Konvertierung von Int zu RichInt

Ich verstehe in Scala, dass Int implizit in RichInt konvertiert wird. Wo in der Quelle passiert das (ich habe die Scala-Quelle durchsucht, aber ich konnte sie nicht finden ...)     
06.10.2011, 01:54
1
Antwort

Ein Problem der impliziten Konvertierungen in scala 2.8

Ich möchte eine implizite Umwandlung von Tuple2 [A, B] in Seq [C] schreiben, wobei C der Super-Typ von A und B ist. Mein erster Versuch wie folgt: %Vor% Aber es funktioniert nicht: %Vor% Während das funktioniert: %Vor% Anwendungsfall...
02.08.2010, 16:40
1
Antwort

C ++ 11 implizit konvertieren

%Vor% Ich benutze VS 2013. Fragen: Warum führen die Definitionen von str1 und str2 zu unterschiedlichen Kompilierungsfehlern? Wie ich weiß, wenn rStr erstellt wird, wird zunächst ein temporäres String-Objekt erstellt, dann...
16.06.2014, 10:52
2
Antworten

Ist es sicher, einen Zeiger in typisierte / Größe enum in einen Zeiger auf den zugrunde liegenden Typ zu konvertieren?

Der folgende Code: %Vor% Erzeugt den folgenden Fehler: %Vor% Das ist überraschend für mich, weil ich dachte, dass die : uint8_t in der enum Definition bedeuten würde, dass sie notwendigerweise mit diesem zugrunde liegenden Typ dargest...
22.05.2017, 21:39
1
Antwort

Scala - Hinzufügen zu Int

Ich möchte das tun können: %Vor% Aber Int hat keine unapply -Methode. Ich habe diese Antwort gefunden, die Anweisungen gibt, wie man implizit eine Methode zu einer existierenden hinzufügen kann Objekt, also habe ich es ausprobiert...
15.03.2012, 19:59
2
Antworten

Wie werden Sie vor möglichen arithmetischen Fehlern aufgrund von Typkonvertierungen gewarnt?

Ich arbeite an einem Berechnungsmodul mit C #, und ich stieß darauf: %Vor% Ich weiß, dass dies eine falsche Initialisierung ist, die v = 0.0 anstelle von v = 0.04 zurückgibt Die c # -Regeln sagen, dass ich sicherstellen muss, dass...
12.12.2012, 13:02