今天我在想,直到我意识到它只有compiles带有布尔参数。带有bool参数的构造函数允许编译Java代码的代码
#include <iostream>
using namespace std;
class Foo {
bool _param;
public:
Foo(bool param) {
_param = param;
}
void say() {
cout << "Param is "<< _param << endl;
}
};
int main() {
Foo foo = new Foo(true);
foo.say();
return 0;
}
我也注意到,构造函数被调用两次,那么我的猜测是,通过“新富(真)”创建的指针被浇铸为布尔值。是吗?如果是这样,为什么它不适用于其他参数类型?还有什么我没有看到的?
标记构造函数'explicit'可能会让你更快找到错误。 – Jarod42