C++的explicit关键字导致不能用整数为类对象赋初值

2025-01-05 07:30:19
推荐回答(2个)
回答1:

explicit A(int n);会防止一切隐形调用,只能显式调用如
A a(20);
这不是什么错误,是explicit关键字的作用
A b = 20;看起来是operator=实际上却是构造,因为是从无到有的过程

A b;
b = 20;则是operator=

回答2:

去掉 explicit 后
我用VC6测试,运行没有问题,可以通过!