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. ___
1
Antwort

Warum wird der Konstruktor std :: bitset mit einem unsigned long long-Argument nicht explizit markiert?

Die Standardbibliotheksklassenvorlage std::bitset<N> hat einen Konstruktor (C ++ 11 und höher, unsigned long Argument vor C ++ 11) %Vor% Im Gegensatz zu vielen Best-Practice-Richtlinien ist dieser Konstruktor mit einem Argument n...
14.09.2014, 12:48
1
Antwort

Kann ein überladener Operator in eine Nicht-Member-Funktion umgewandelt werden, um Code zu brechen?

Betrachten Sie eine Legacy-Klassenvorlage mit überladenen Additionsoperatoren += und + %Vor% Bei der Code-Überprüfung wird beobachtet, dass + in += implementiert werden kann. Warum also nicht ein Nicht-Member (und garantiert Symm...
28.09.2014, 20:10
3
Antworten

Zurückschieben der Zeichenfolge zum Vektor der Objekte

Ich habe einen Code durchsucht, den ich für ein Schulprojekt geschrieben habe, das mir bei näherer Betrachtung seltsam erschien. Ich hatte eine Klasse ähnlich der folgenden: %Vor% Warum ist der erste Aufruf von push_back eine gültige Anwe...
31.12.2015, 02:48
4
Antworten

Implizite Umwandlung von FuncMyType in MyType

Gegeben die folgende Klasse: %Vor% Von der impliziten Umwandlung von Func<MyType> nach MyType nahm ich an, dass Folgendes möglich wäre: %Vor% Aber ich bekomme:    Die Methodengruppe 'MyTypeWrapper' kann nicht in den Nicht-...
14.06.2013, 19:59
5
Antworten

Ist if (doppelt) gültig C ++?

Ich bin gerade in diese Codezeile gelaufen: %Vor% wobei length2 eine double zurückgibt. Es verwirrt mich, dass 0.0 0, NULL und / oder false entspricht. Ist dies ein Teil des C ++ - Standards oder ist das Verhalten nicht defini...
22.09.2010, 07:31
3
Antworten

C # Implizite / explizite Typkonvertierung

Ich habe ein einfaches Szenario, das möglicherweise möglich ist oder nicht. Ich habe eine Klasse, die eine ganze Zahl enthält, zu diesem Zweck mache ich es so einfach wie möglich: %Vor% Wie funktioniert die Funktion Test() , die ich progra...
21.02.2011, 04:11
2
Antworten

ReactiveMongo 0.9: Joda Datetime Implizite Konvertierung für Macros.handler

Ich habe Fallklasse mit joda Datetime Feld: %Vor% Versuchen, Makro zu verwenden, um Leser und Verfasser zu generieren: %Vor% Ich habe: %Vor% Aber ich habe keine Informationen gefunden, wie ich meinen eigenen impliziten Konverter impl...
21.05.2013, 06:53
2
Antworten

Verwendung von String-Konstanten bei der impliziten Konvertierung

Betrachten Sie den folgenden Code: %Vor% Aber ich möchte, wenn möglich, folgendes tun können. %Vor% Ich kann die String-Klasse nicht mit der impliziten Operatorüberladung TextType erweitern, aber gibt es eine Möglichkeit, einer anderen K...
24.01.2010, 18:43
1
Antwort

Scala - implizite Konvertierung mit unapply

Ich möchte, dass ein Extraktor seine Parameter implizit konvertiert, aber es scheint nicht zu funktionieren. Betrachten Sie diesen sehr einfachen Fall: %Vor% Aber ich kann es nicht so verwenden, wie ich es erwarte: %Vor% Kann jemand erkl...
18.07.2011, 17:07
3
Antworten

Ambiguous string :: operator = Aufruf für Typ mit impliziter Konvertierung in int und String

Gegeben das folgende Programm: %Vor% Er kompiliert in Visual Studio 11, aber nicht in clang oder gcc. Es hat Probleme, weil es implizit von einem GenericType in ein int in ein char umwandeln möchte, aber es könnte auch ein string...
24.05.2012, 18:16