gpt4 book ai didi

c++ - 在 N 元构造函数上显式?

转载 作者:可可西里 更新时间:2023-11-01 15:49:27 26 4
gpt4 key购买 nike

在此演示文稿中:http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf

作者建议 N 元构造函数受益于 C++11 版本的 explicit 关键字。

C++11 中有什么变化使得 this 关键字在您有多个构造函数参数时有用?

最佳答案

在 C++11 中,如果你有一个类 A 的非显式构造函数,它有多个参数(这里我使用 A::A(std::string, int , std::string) 为例),你可以用大括号初始化初始化该类型的参数:

void foo(A a);
foo({"the", 3, "parameters"});

同样,你可以对返回值做同样的事情:

A bar() {
return {"the", 3, "parameters"};
}

但是,如果构造函数是显式,则这些将不会编译。因此,explicit 关键字现在对所有构造函数都很重要,而不仅仅是转换构造函数。

关于c++ - 在 N 元构造函数上显式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com