explicit(显式)构造函数
时间: 2023-08-28 14:08:27 浏览: 213
explicit(显式)构造函数是在C++中用来防止隐式转换的特殊类型的构造函数。当一个构造函数被声明为explicit时,它就不能被用于隐式地将一个参数转换为该类的对象。
默认情况下,单参数的构造函数应该被声明为explicit,除非你有很好的理由需要隐式转换。一个常见的例子是复数的构造函数,如果忽略虚部,就会得到实数轴上的一个复数,这时可以使用隐式构造函数。
除了单参数的构造函数,explicit也可以用于无参或多个参数的构造函数。在这种情况下,使用explicit可以防止隐式转换。当一个构造函数被声明为explicit时,可以使用花括号初始化列表来显式地创建对象,而不能使用括号初始化或隐式转换。
总的来说,explicit(显式)构造函数限制了隐式转换,只能通过显式的方式来创建对象。这能够提高代码的可读性和安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C/C++编程:显式构造函数(explicit )](https://blog.csdn.net/zhizhengguan/article/details/115347489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文