bec*_*cko 3 c++ operator-overloading
我已经定义了一个Complex重载+运算符的类:
Complex operator+(Complex const& x, Complex const& y);
Run Code Online (Sandbox Code Playgroud)
我想从定义隐式转换double到Complex,例如,例如,如果我写的c + d,这里c是一个Complex和d一个double,它会叫我的过载+,我上面定义并返回Complex.我怎样才能做到这一点?
你只需要为它定义一个构造函数.这被称为"转换构造函数"
Complex::Complex(double x)
{
// do conversion
}
Run Code Online (Sandbox Code Playgroud)
这将允许隐式转换,只要您不使用explicit关键字,这将迫使您必须使用转换来转换.
您还可以定义其他版本的 operator+
Complex operator+(Complex const& x, double y);
Complex operator+(double x, Complex const& y);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |