具有显式转换构造函数的简单类。
class MyDouble {
double d;
public:
MyDouble() : d(0) {}
explicit MyDouble(double d_) : d(d_) {}
MyDouble & operator =(double d_) {
d = d_; return *this;
}
};
我故意添加一个分配,使其可以从double
.
MyDouble a;
a = 1.1; // this works
MyDouble b = MyDouble(1.1); // this works
MyDouble c(1.1); // this works
MyDouble d = 1.1; // this does not work
我不想要隐式转换,因为它会导致一些其他问题。但我仍然想要直接分配工作,但它没有。无论如何都可以在MyDouble d = 1.1;
不删除explicit
关键字的情况下使最后一条语句起作用。