Als «explicit» getaggte Fragen

2
Warum verhindert #include <string> hier einen Stapelüberlauffehler?
Dies ist mein Beispielcode: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class MyClass { string figName; public: MyClass(const string&amp; s) { figName = s; } const string&amp; getName() const { return figName; } }; ostream&amp; operator&lt;&lt;(ostream&amp; ausgabe, const MyClass&amp; f) { ausgabe &lt;&lt; f.getName(); return ausgabe; } int main() { …


1
Kann ein Cast-Operator explizit sein?
Wenn es um Konstruktoren geht, explicitverhindert das Hinzufügen des Schlüsselworts, dass ein begeisterter Compiler ein Objekt erstellt, wenn dies nicht die erste Absicht des Programmierers war. Gibt es einen solchen Mechanismus auch für Gießbetreiber? struct Foo { operator std::string() const; }; Hier möchte ich zum Beispiel in der Lage sein, …

3
Was ist der Anwendungsfall für explizite (bool)
In C ++ 20 wurde explizit (bool) eingeführt, das beim Kompilieren bedingt auswählt, ob ein Konstruktor explizit gemacht wird oder nicht. Unten ist ein Beispiel, das ich hier gefunden habe . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename T&gt; explicit(!std::is_integral_v&lt;T&gt;) foo(T) {} …
24 c++  c++20  explicit 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.