MENU

C++ explicit 关键字

知识点

explicit用来声明类构造函数的显示调用,当然这个作用是针对单参数构造函数

示例

#include <iostream>

class ExplicitTest {
public:
    // 无参构造函数不能隐式调用
    ExplicitTest() {
        std::cout << "这是无参构造函数" << std::endl;
    }

    explicit ExplicitTest(int num) {
        std::cout << "这是int参数构造函数" << num << std::endl;
    }

    explicit ExplicitTest(char *str) {
        std::cout << "这是char参数构造函数" << str << std::endl;
    }

    // 多参数构造函数不能隐式调用
    ExplicitTest(int num, char *str) {
        std::cout << "这是多参数构造函数" << num << str << std::endl;
    }
};

int main(int argc, char *argv[]) {

    ExplicitTest explicitTest1(5);
//    ExplicitTest explicitTest2 = 5;  有explicit关键字无法隐式调用
    ExplicitTest explicitTest3("hello world");
//    ExplicitTest explicitTest4 = "hello world"; 有explicit关键字无法隐式调用

    return 0;
}
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码