Questions tagged «explicit»

2
为什么#include <string>在这里防止堆栈溢出错误?
这是我的示例代码: #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() { MyClass f1("Hello"); cout …


1
强制转换运算符可以是显式的吗?
对于构造函数,添加关键字explicit可以防止热心的编译器在不是程序员的初衷时创建对象。这样的机制也可用于铸造操作员吗? struct Foo { operator std::string() const; }; 例如,在这里,我希望能够Foo转换为std::string,但是我不希望这种转换隐式发生。

3
显式(布尔)的用例是什么
C ++ 20引入了显式(布尔),它在编译时有条件地选择是否使构造函数显式。 下面是我在这里找到的示例。 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) {} }; foo a = 123; // OK foo b = "123"; // ERROR: explicit constructor is not a candidate (explicit specifier evaluates to true) foo c {"123"}; …
24 c++  c++20  explicit 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.