C++关键字 explicit

    xiaoxiao2021-03-25  111

    之前在项目中有看到过explicit关键字,不过不清楚是什么作用。

    网上大致查了一下。

    首先它仅限于描述构造函数,然后它的作用是避免隐式调用构造函数。

    什么时候会触发隐式调用呢?

    举个栗子:

    //测试类Test class Test { public: Test() { m_iValueA = 0; m_iValueB = 0; } explicit Test(int iA,int iB = 4) { m_iValueA = iA; m_iValueB = iB; } int m_iValueA; int m_iValueB; }; int main() { Test testTemp1(5); Test testTemp2 = 5; } 这里的Test testTemp2 = 5;就是在隐式调用Test(int iA,int iB = 4)这个构造函数,而因为声明了explicit关键字,所以它的编译时无法通过的。

    它的作用在于禁止一些我们未察觉到的隐式调用,避免程序中意料之外的情况发生。

    (代码借鉴于http://blog.csdn.net/chollima/article/details/3486230)

    转载请注明原文地址: https://ju.6miu.com/read-13060.html

    最新回复(0)