什么c + +内联显式构造函数是好的?

这个问题在这里已经有了答案:

  • 显式关键字是什么意思? 11个答案

  • 如果您在头中定义函数,而不是在类定义中定义函数,则inline是必需的。 它允许在多个翻译单元中定义该功能(即,当包含来自多个源文件的标题时)。 目的是为了让编译器内联调用函数 - 许多编译器要求定义在翻译单元中可用,才能做到这一点。

    在这种情况下,它是毫无意义的:在类定义中定义的函数隐式内联。

    explicit意味着构造函数不能用于隐式类型转换。 历史上,它只对单参数构造函数有意义; 但我认为现在它也可以用来防止大括号初始化。

    在这种情况下,它也没有意义:默认构造函数不用于隐式转换。

    对于内联显式的好处是什么?

    在这里,他们都给有用的代码气味 - 作者价值观念和过度结构超过清晰度。 使用Singleton反模式进一步证明了这一点 - 在此代码中谨慎行事。


    用构造函数explicit阻止它们被隐式使用。

    inline是一种告诉编译器的方法(在我们缺乏内存的情况下),函数是它想要内联的东西。 当然,他们现在忽视我们,或者最多用“愚蠢的人,我认为我不知道那已经?”这样的潜台词来“幽默地告诉我们”。 (简而言之,现在inline忽略了,编译器比我们决定内联的位置要好得多)。

    链接地址: http://www.djcxy.com/p/24551.html

    上一篇: what c++ inline explicit constructor is good for?

    下一篇: c++ explicit keyword for function without arguments