Kla*_*aim 10 c++ constructor explicit-constructor c++11
在此演示文稿中:http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf
作者建议N-ary构造函数受益于C++ 11版本的explicit关键字.
如果你有多个构造函数参数,那么在C++ 11中有什么变化可以使这个关键字变得有用?
Jos*_*eld 16
在C++ 11中,如果你有一个A具有多个参数的类的非显式构造函数(这里我A::A(std::string, int, std::string)用作一个例子),你可以使用大括号初始化初始化该类型的参数:
void foo(A a);
foo({"the", 3, "parameters"});
Run Code Online (Sandbox Code Playgroud)
同样,您可以使用返回值执行相同的操作:
A bar() {
return {"the", 3, "parameters"};
}
Run Code Online (Sandbox Code Playgroud)
但是,如果构造函数explicit不能编译.因此,explicit关键字现在对所有构造函数都很重要,而不仅仅是转换构造函数.
| 归档时间: |
|
| 查看次数: |
721 次 |
| 最近记录: |