explicit 相关问题

在C ++中,指定不允许隐式转换或复制初始化的构造函数和转换运算符。在C#中声明了一个必须使用强制转换调用的用户定义的类型转换运算符。对于MS SQL Server for-xml-EXPLICIT模式,请使用[for-xml-explicit]标记

[dcl.fct.spec]/4 中最后一句的目的是什么?

[dcl.fct.spec]/4: 在显式说明符中,常量表达式(如果提供) 应为 bool 类型的上下文转换常量表达式 ([expr.const])。显式说明符显式

回答 1 投票 0

警告:无法找到显式积分。

我正在尝试进行简单的集成,我已附上代码。您能帮我看看我在代码中做错了什么吗? 函数 [f_value] = SurfArea () a=[1.78E-05 3.39E-04 0...

回答 1 投票 0

关于练习 1-13 的问题,来自 K&R 第二版 [重复]

在本练习中,您将编写一个程序来打印输入中单词长度的直方图。 以下代码来自《C答案书》: #包括 #定义最大...

回答 1 投票 0

何时在 C++ 中显式构造函数 [关闭]

阅读以下博客后: http://xania.org/200711/ambiguously-overloading 我开始问自己“我不应该总是显式定义我的构造函数吗?” 所以我开始阅读超过四本书......

回答 1 投票 0

需要解释Python中json和dict的区别

我只是好奇想更深入地了解Python中的JSON和Dict。 我有来自服务器的 JSON 响应,如下所示: `{"city":"密西沙加","country":"加拿大","countryCode":"CA"}` 我想...

回答 5 投票 0

多参数构造函数上的显式关键字的用途是什么?

我最近遇到了一些看起来很奇怪的类,它有三个构造函数: 班级 班级 { 民众: 显式类(int); 类(另一个类); 显式类(

回答 1 投票 0

为什么默认构造函数和具有 2 个或更多(非默认)参数的构造函数是显式允许的?

我知道带有一个(非默认)参数的构造函数就像隐式转换器,它从该参数类型转换为类类型。然而,显式可用于限定任何

回答 5 投票 0

Abaqus/Explicit 与用户子例程:错误

当我在 abaqus 命令窗口中输入 abaqus info=system 时,一切看起来都很好: C++ 编译器:Microsoft Visual C++ 14.29.30147.0 链接器版本:Microsoft (R) 增量链接器

回答 1 投票 0

是否有任何理由将抽象类的构造函数标记为显式

在下面的例子中,由于抽象方法run,我的类是抽象的。我还有一个来自另一种类型的构造函数。我总是将只有 1 个参数的构造函数标记为显式,除非我

回答 1 投票 0

为什么对象赋值时不使用转换函数?

我了解到我们可以在 C++ 中为我们的类提供转换运算符。所以我希望对于下面的程序,c=1;会使用转换运算符 int()。但令我惊讶的是;那...

回答 3 投票 0

为什么 const char* 隐式转换为 bool 而不是 std::string?

#include #包括 结构我的结构{ mystruct(std::string s){ std::cout<<__FUNCTION__ <<" String "< #include <iostream> #include <string> struct mystruct{ mystruct(std::string s){ std::cout<<__FUNCTION__ <<" String "<<s; } explicit mystruct(bool s) { std::cout<<__FUNCTION__<<" Bool "<<s; } }; int main() { const char* c ="hello"; mystruct obj(c); return 0; } 输出: mystruct Bool 1 为什么 const char* 隐式转换为 bool 而不是 std::string,尽管构造函数需要 explicit 类型? 这里如何应用隐式转换优先级? 因为const char*到bool的隐式转换是标准转换,而const char*到std::string是自定义转换。前者排名更高,在 overload resolution. 中获胜 标准转换序列总是优于用户定义的转换序列或省略号转换序列。 BTW:mystruct obj(c);执行直接初始化,explicit转换构造函数包括mystruct::mystruct(bool)也被考虑。结果,c 被转换为 bool 然后传递给 mystruct::mystruct(bool) 作为构造 obj. 的参数 直接初始化比复制初始化更宽松:复制初始化只考虑非显式构造函数和非显式用户定义的转换函数,而直接初始化考虑所有构造函数和所有用户定义的转换函数。 关于explicit说明符, 指定构造函数 or conversion function (since C++11) or deduction guide (since C++17) 是显式的,也就是说,它不能用于 隐式转换 和 copy-initialization. “为什么 const char* 隐式转换为 bool 而不是 std::string,尽管构造函数需要 explicit 类型?”: 标准转换优先于用户定义的转换。 char const* 是指向常量字符的指针,指针可以隐式转换为 bool :如果它是 nullptr,则转换为 false,否则转换为 true。 您曾经在检查指针是否为NULL的情况下看到如此有效的转换,所以如果不是nulptr我们安全地取消引用它否则它具有nullptr值因此它是不正确的取消引用它: int* ptr = nullptr; if(ptr) // false because ptr has nullptr or NULL or 0 or 0x000000 address value std::cout << ptr << '\t' << *ptr << '\n'; // not executed ptr = new int(10); // valid and non-nullptr if(ptr) // non-nullptr so condition succeeds std::cout << ptr << '\t' << *ptr << '\n'; // 0FED155 10 delete ptr; // free memory explicit构造函数意味着它只能被显式调用,唯一的方法是像你的情况一样通过直接初始化: mystruct obj(c); // direct initialization mystruct obj = c; // copy-initialization. Error: constructor myStruct(bool) is `explicit` 只是添加到已经很好的答案中。您可以通过添加 delegating constructor 来解决这个问题,如下所示: mystruct(const char* s):mystruct(std::string(s)) {} 这将在重载决策中胜过 bool。 另一种选择是在这里避免使用 bool 并使用 bool 但具有更多含义的东西。这可能是'布尔盲目'的一个例子

回答 3 投票 0

Ocaml - 我如何显式地声明列表可变类型

我尝试了类似于: let lchars : char ref list = ref [];; 但不工作... ...

回答 2 投票 0

在用硒关闭Web驱动程序之前如何验证文件下载是否完成?

在关闭JAVA中的Selenium Web驱动程序之前,如何验证文件下载是否完成。我已经编写了一个Selenium代码,可以将2个文件下载到所需的文件夹位置。但是我关闭了...

回答 1 投票 0

带有枚举和模板参数的显式默认构造函数的正确定义

我有一个带有子类的基类Method。自动谐波力= [](const double&q,const double&k){return -k * q;};枚举SplittingAB {SS,L42};类方法{public:〜Method()= ...

回答 1 投票 0

具有ftp_connect功能的AUTH TLS / SSL

根据RFC 2228,AUTH是FTP命令,可以与一种身份验证机制(TLS或SSL)一起使用,以保护数据通道和控制通道。我想知道我是否...

回答 1 投票 0

如何在Java中使用显式构造函数从文本文件创建对象数组?

public class MainClass {public static void main(String [] args)引发IOException {RectangleArray array = new RectangleArray(“ rectangle.txt”); array.printColl(); }}类颜色...

回答 1 投票 0

如何解决“无法转换”?

我遇到了编译错误“无法转换..”,“没有构造函数实例..”。我做错了我。我试图更改对象的初始化方式,但没有帮助。想了解...

回答 1 投票 -2

显式(布尔)的用例是什么

c ++ 20引入了显式(布尔),它在编译时有条件地选择是否使构造函数显式。下面是我在这里找到的示例https://github.com/AnthonyCalandra / ...

回答 2 投票 7

如何设置显式实现的接口的属性?

我有以下代码段:公共接口Imy {int X {get;组; }}公共类MyImpl:Imy {private int _x; int Imy.X {get => _x;设置=> _x =值; } ...

回答 1 投票 1

使参数明确?

显式可用于例如构造函数或转换函数,以避免隐式调用该构造函数/转换-简而言之。我对是否可以做一个参数很感兴趣...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.