小编dpb*_*dpb的帖子

为什么'explicit'关键字允许隐式转换?

class Test {

    private:
    int value;

    public:
    void display(void)
    {
        cout << "Value [" << value << "]" << endl;
    }
    explicit Test(int i)
    {
        value=i;
    }   
};

int main() {

    Test a(5);
    Test b(4.9);

    a.display();
    b.display();

    cin.get();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

即使提到了显式,浮点值也会转换为int.

我期望(错误地)浮点数不会转换为整数而对象b不会被构造.

c++

3
推荐指数
1
解决办法
118
查看次数

标签 统计

c++ ×1