gpt4 book ai didi

c++ - 显式标记所有 C++ 构造函数有什么缺点吗?

转载 作者:IT老高 更新时间:2023-10-28 21:56:14 26 4
gpt4 key购买 nike

有几次,在重构代码的时候,我忘记在以前的无参数构造函数中添加参数时添加 explicit 关键字,或者从以前的多参数构造函数中删除参数。为了防止这种情况,我养成了标记每个构造函数 explicit 的习惯,不管它有多少参数。 (当然,我实际上想要隐式转换的那些构造函数除外。)

这有什么缺点吗?表现?编译时间?

最佳答案

它没有任何缺点。它将是 future 安全的,因为在 C++0x 中,多参数构造函数使用多元素初始化列表参与初始化,并且可以禁止在仅使用 explicit 进行隐式转换的情况下使用。

所以如果你发现一个给定的多参数构造函数在逻辑上不能代表你的类的值,我认为最好让它explicit(例如:我会设置一个容器构造函数(size_t size, T defaultValue)显式,而pair的构造函数(T first, U second)为设置非显式)。

关于c++ - 显式标记所有 C++ 构造函数有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703448/

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